问题标签 [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 回答
287 浏览

github - 标签上的 GitHub 工作流未从语义发布开始

每当将新标签推送到 GitHub 时,我都有一个应该运行的工作流程:

我使用语义发布插件来自动创建新版本xx.yy.zz(这会自动在 GitHub 上创建新标签和发布。但是,不会为这些新标签执行新标签的工作流。git tag test-tag但是,当我使用并推送它手动创建一个新标签时git push --tags,工作流程就会被执行。我可以在 GitHubtags部分中看到语义发布和手动创建的标签。

这两种方法之间有什么区别,我的工作流是针对手动推送执行的,而不是针对语义发布推送的?

0 投票
1 回答
477 浏览

semantic-versioning - 设置 @semantic-release 以考虑 CHANGELOG 中的“重构”提交

使用@semantic-release我想考虑对两者进行重构更改,触发新版本并在 CHANGELOG.md 文件中写下。

到目前为止,我已经包含了重构提交,"@semantic-release/commit-analyzer"因此它们会触发补丁发布:

但是这些提交消息不包含在 CHANGELOG 文件中,我如何设置"@semantic-release/release-notes-generator"插件以包含重构提交?我发现相关文档令人困惑且缺乏示例


  1. 生成的 CHANGELOG 示例
  1. 所需的变更日志
0 投票
0 回答
617 浏览

git - 强制语义发布以与下一个版本一起部署

test我从分支上的 CI 触发的 sematic-release 收到错误

当我推送未发布的无效代码时,问题就开始了,所以为了回滚我所做的更改git reset --hard <to-id-with-last valid version>

复位后git reset --hard commitA

代码看起来不错,但语义释放失败并出现错误:

我在文档中找到了适合这种情况的故障排除 -推送标签时参考已经存在错误

语义发布读取发布分支历史记录中存在的 Git 标记,以确定最后发布的版本。然后它根据从那时起推送的提交确定下一个要发布的版本,并创建相应的标签。如果您的存储库中已经存在具有该名称的标签,Git 将抛出错误,因为标签在存储库中必须是唯一的。(...) 如果发布了具有该版本号的实际版本,您需要将直到该版本的所有提交合并到您的发布分支中。

版本v4.2.0已发布,但现在没有。当我推送更新的代码时,它也会失败并出现同样的错误。

如果我能够使用下一版本 v4.3.0 或 4.2.1 发布此代码并跳过无效发布,则所有问题都可以解决。

0 投票
1 回答
92 浏览

semantic-release - 如果要发布新的主要版本,如何使语义发布中止并失败?

我想在语义发布中添加一个检查,只允许它发布次要版本和补丁版本。如果它检测到需要执行新的主要版本,我希望该过程中止并失败(而不是继续执行发布)。我怎样才能做到这一点?

0 投票
0 回答
35 浏览

semantic-release - 语义发布随机分支作为发布分支

应该如何配置语义发布以为每个分支生成唯一的语义版本控制(将所有分支设置为发布分支)。

也就是说,假设一个随机分支名称 - 应该如何配置语义发布以使随机分支成为发布分支,这样语义发布将为该分支生成唯一的语义版本控制。例如1.2.3-<branch name>+<ref>

0 投票
1 回答
316 浏览

npm - 从具有语义发布的现有项目开始发布包不是从 1.0.0 开始

我有一个当前发布到 npm 的私有 npm 包。我之前的维护者没有考虑自动化版本控制,版本是1.0.58。

我已经安装了语义发布和一个小的 GitHub 应用程序,可以在这里找到:https ://github.com/zeke/semantic-pull-requests

我的 Github Action 设置正确,因为当我推送到 main 时,该过程会通过并到达发布步骤。但是,创建的标签从 1.0.0 开始,然后是 1.0.1 等。

我尝试在最近一次合并时在主分支上手动创建一个标签,该标签是 v1.0.58,但是当我再次发布时,创建的标签仍然是 1.0.2 等。因此,我收到一条错误消息说我不能发布“超过”当前版本。

如何修复 1.0.59:... 提交?

感谢大家!

0 投票
1 回答
80 浏览

c++ - 语义发布:分配版本号时如何避免竞争条件?

我正在考虑在我的 GitLabCI 构建过程中为 C++ 应用程序实现语义发布。但是我担心潜在的比赛条件。

首先,如果两个构建同时运行,并且在最新提交中都具有相同的版本增量类型,那么如何防止它们被语义发布分配相同的版本号?语义发布是否会在分配版本号之前进行 git 标签刷新,以防它要分配的版本被偷走?

其次,我需要将版本号编译成二进制文件,所以我需要语义发布在流程开始时为我的流程提供一个可用的版本号,然后为整个构建过程(约 1 小时)保留该版本号,然后发布该版本在成功构建结束时。我可以看到语义发布支持一种试运行模式,该模式将给出建议的版本号,我的流程可以捕获该版本号。但是我看不到语义发布在构建过程中保留版本号的任何方式,因此另一个进程可以开始并采用相同的版本号,然后更早成功(无论出于何种原因),并欺骗第一个进程它声称的版本号。

那么考虑到这些情况,语义释放是否支持任何保留版本号的机制以避免这些竞争条件?

0 投票
1 回答
198 浏览

semantic-release - 是否可以只发布带有语义发布的预发布?

我想使用语义发布只发布预发布。

我有这个配置在我的package.json

但是如果我运行npx semantic-release我会遇到以下错误:

只要我添加另一个(不是预发布)分支,它就可以工作。

是否可以只配置预发布分支?

0 投票
1 回答
475 浏览

github - 语义释放在 CircleCI 上突然失败-远程:用户名或密码无效

在 CircleCI 上运行检查和发布时,该过程在发布阶段使用语义释放开始失败。几个月来一直运行良好。

错误消息是:

0 投票
0 回答
74 浏览

python - python-semantic-release 用于同一存储库中的不同包?

您好我有一个具有以下结构的存储库

问题是,当我在每个单独的文件夹中执行 python-semantic-release 时,它​​们总是得到相同的版本,问题是如何在存储库中为每个包生成不同的版本。

亲切的问候。