问题标签 [semantic-release]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3573 浏览

npm - 如何在语义发布中强制版本

我有一个 npm 包,我需要在 npmjs.com 中发布,但是因为我取消发布了以前错误的版本,现在 npmjs 不允许我重新发布具有相同版本的人工制品(它会抛出一个错误说You cannot publish over the previously published versions

在我的项目中,我使用语义发布,它会根据上次发布版本的提交自动计算提供给人工制品的版本。

因此,我想知道是否有一种方法overwriteforce语义发布来提供与它计算的版本不同的版本,例如在 CI 中运行它的命令时输入它

0 投票
1 回答
648 浏览

node.js - 在非主分支上未通过语义发布生成自动更改日志

在我的节点项目中 - 我正在尝试实现语义发布以生成变更日志形式的发布说明,增加项目版本号。

按照以下命令在项目中安装相同的内容:

这是package.json文件中的配置:

但是,当我尝试运行时npx semantic-release --no-ci,它会抛出这个:

此测试运行是在分支 qa 上触发的,而语义发布配置为仅从 master 发布,因此不会发布新版本。

整个堆栈跟踪是:

常规提交是在 QA 分支上完成的——我需要在 QA 分支上生成变更日志。

什么是正确的方法?

0 投票
1 回答
484 浏览

git - 语义释放不会在需要的分支上生成释放

我正在使用语义释放库,这是我的 release.config.js:

如您所见,我将 rel 分支设置为生成语义发布的分支,它工作正常,但只要我将上述内容更改为

为了生成任何分支名称的发布,例如:rel-1.0.0 或 release-1.3.4 或 rel。例如,我在 rel-1.0.2 中,我收到一条消息,说语义发布设置为 master,因此它不会生成发布

任何人都可以帮忙吗?

0 投票
3 回答
4590 浏览

semantic-release - 使用语义发布获取下一个标签版本

嗨,我在我的仓库中使用语义发布进行版本控制。在我的 Gitlab 中,当我将分支与 master 合并时,我的标签会根据提交而增加,并且工作正常。有什么方法可以让我获得合并之前的“下一个标签版本”。我想在合并之前将下一个版本写入文件

尝试使用 exec 但它似乎没有运行

我尝试使用 exec 但 exec 没有为我运行(我对语义发布很陌生,我一定在某处做错了什么)

你能把我推向正确的方向吗:)

我的 gitlab Ci 脚本:

这是我的 package.json:

Exec 似乎没有运行

0 投票
1 回答
3106 浏览

node.js - semantic-release 配置为仅从 master 发布

[16:07:15] [semantic-release] › ℹ 运行语义发布版本 17.0.4
[16:07:18] [semantic-release] › ✔ 从“@semantic-release/npm”加载插件“verifyConditions”
[16:07:19] [semantic-release] › ✔ 从“@semantic-release/git”加载插件“verifyConditions”
[16:07:19] [semantic-release] ›✔ 从“@”加载插件“analyzeCommits” semantic-release/commit-analyzer”
[16:07:19] [semantic-release] › ✔ 从“@semantic-release/release-notes-generator”
[16:07:19] [semantic- release] › ✔ 从“@semantic-release/changelog”加载插件“prepare”
[16:07:19] [semantic-release] › ✔ 从“加载”插件“prepare”@语义发布/npm"
[16:07:19] [semantic-release] › ✔ 从“@semantic-release/git”加载插件“prepare”
[16:07:19] [semantic-release] ›✔ 从“@”加载插件“publish”语义发布/npm”
[16:07:20] [语义发布] › ✔ 从“@semantic-release/gitlab”加载插件“发布”
[16:07:20] [语义发布] › ✔ 加载插件来自“@semantic-release/npm”的“ addChannel”
[16:07:20] [semantic-release] › ✔ 从“@semantic-release/github”加载插件“addChannel”
[16:07:27] [semantic- release] › ℹ 本次测试运行是在分支开发上触发的,而semantic-release配置为只从master发布,因此不会发布新版本。

在 .releaserc.js 上

0 投票
1 回答
2541 浏览

git - Semantic-Release - 预发布版本不增加补丁、次要或主要版本

当前行为

这是一个全新的项目,所以新版本等。

目前有一个名为“next”的预发布分支,名为“stable”的发布分支,所有功能都在我们的“开发”分支中工作,并且它们具有正确的功能(测试):这是一个测试提交消息。

我们从开发分支创建一个拉取请求到“下一个”。一旦我们对它的外观等感到满意,我们就会将我们的“开发”分支合并到我们的“稳定”分支中。

首先推送“next”会创建一个名为 v1.0.0-next.1 的标签。

但是,另一个专长提交不会将版本增加到 v1.1.0-next.1。它只是创建 v1.0.0-next.2。

如果我随后将我们的“开发”分支拉入我们的“稳定”发布分支,它会更新正确的版本,例如发布 v1.1.0。

我在我的开发分支 package.json 中设置了以下版本

“版本”:“0.0.0-next”,我的版本在 package.json 中也没有像我在本地运行它时那样增加,对于任何分支。

预期的行为 预期的行为将按照正常情况使预发布版本增加,也有我的 package.json 更新。

软件包版本

语义发布版本:“@semantic-release”:“^17.0.4”,“@semantic-release/changelog”:“^5.0.1”,“@semantic-release/commit-analyzer”:“^8.0。 1", "@semantic-release/git": "^9.0.0", "@semantic-release/npm": "^7.0.5", "@semantic-release/release-notes-generator": "^ 9.0.1",

CI环境:

圈子CI

使用的插件:

CI 日志:

我尝试过的事情:

添加这些选项并在本地运行。

在我的计算机上本地npx semantic-release运行,同时在提交会增加版本后签出 beta 分支。同样的问题,例如调试日志报告主要版本增加但仍然保持相同的 1.0.0-next.x,在这种情况下应该是 2.0.0-next.x。

如果有人可以提供帮助,将不胜感激:)

0 投票
1 回答
341 浏览

continuous-integration - 使用语义发布推送到存储库并使用 GitHub Actions 在其他作业中签出

我们正在使用 GitHub Action 自动发布我们的应用程序。为此,我们在 CI 管道中调用语义发布,然后在下一步中使用电子生成器生成二进制文件。我们需要 MacOS、Windows 和 Linux 的二进制文件。可悲的是,为此我们需要两个不同的工作,因为我们的工作必须在 macos-latest 上运行(签署 MacOS 构建),另一个在 ubuntu-latest 上运行(因为 Linux 构建在 macos-latest 上不起作用......转换主图标的一些问题)。

出现的问题是semantic-release第一个作业中的步骤更新package.json并将更改推送到 GitHub 存储库。然后它会创建 MacOS 和 Windows 二进制文件。之后,Linux 作业开始,检出存储库并创建其二进制文件。但是,它仍然在旧版本号上运行(语义发布之前的版本创建了一个新版本)。

您如何确保第二个作业确实具有第一个作业中推送的 git 存储库修订版?

这是操作的 yaml 文件(已删除环境变量映射):

0 投票
0 回答
144 浏览

git - Semantic-release:如何将已经发布到 artifactory 的主版本降级?

比如说,以前的版本是通过压缩提交来完成的。并BREAKING CHANGE在发布版本的压缩提交消息末尾包含文本2.0.0

此后,完成了发布版本的新补丁发布2.0.1

在此之后,feature我们没有决定压缩消息,以便语义发布可以决定使用提交消息将其撞到哪个版本号。从技术上讲,它应该撞到它2.1.1

相反,它3.0.0通过同时考虑所有跳过(压扁)的提交消息并将其发布到工件来解决它。

现在我该如何降级我的版本让我们说回2.x.x?手动或使用语义释放。

0 投票
1 回答
389 浏览

node.js - circleci 中的语义释放命令引发有关 execa 的错误

我正在尝试向 npm 发布一个包。当 CircleCI 尝试运行semantic-release时,它会引发以下错误:

我的package.jsondevDependencies 如下:

我已经在 CircleCI 中为 github 和 npm 设置了环境变量,并在我的 CircleCI 配置文件中使用了它们。在我的 CircleCI 配置中npm ci运行之前,我还有一步。semantic-release

想知道是否有人遇到过这个问题并解决了这个问题?(如有需要,我可以提供更多信息。)

0 投票
1 回答
427 浏览

node.js - 语义释放 - 错误:找不到模块“../输出”

无论我做什么,当我在 BitBucket 管道中运行命令“npx semantic-release --debug”时,总是会遇到完全相同的错误。试运行似乎运行良好。

我已经尝试过的事情:

  • 重新安装节点模块
  • 更新包
  • 从具有工作语义发布的项目中复制完全相同的配置/包

所有文件肯定都在那里。也许它无法访问?

这是完整的调试报告: