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

Posted

技术标签:

【中文标题】在非主分支上未通过语义发布生成自动更改日志【英文标题】:Automated change logs not generating with semantic-release on a non-master branch 【发布时间】:2020-05-13 18:50:47 【问题描述】:

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

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

npm i -D semantic-release@next @semantic-release/git@next @semantic-release/commit-analyzer@next @semantic-release/release-notes-generator@next @semantic-release/npm@next @semantic-release/changelog@next

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

"release": 
    "branches": [
      "qa"
    ],
    "plugins": [
      "@semantic-release/commit-analyzer",
      "@semantic-release/release-notes-generator",
      "@semantic-release/changelog",
      "@semantic-release/git"
    ]
  

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

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

整个堆栈跟踪是:

ℹ  Running semantic-release version 15.14.0
✔  Loaded plugin "verifyConditions" from "@semantic-release/changelog"
✔  Loaded plugin "verifyConditions" from "@semantic-release/git"
✔  Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
✔  Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
✔  Loaded plugin "prepare" from "@semantic-release/changelog"
✔  Loaded plugin "prepare" from "@semantic-release/git"
ℹ  This test run was triggered on the branch qa, while semantic-release is configured to only publish from master, therefore a new version won’t be published.

conventional commits 在 QA 分支上完成 - 我需要在 QA 分支上生成更改日志。

什么是正确的方法?

【问题讨论】:

使用 CLI 参数时是否也会出现相同的消息,即--branch qa branches 选项仅在版本 16.0.0 中可用。您使用的是 15.14.0 版本。您应该升级到最新版本。 @RobC 当我使用--branch=qa 作为参数时,会生成更改日志。 @PierreVanduynslager 我现在将与16.0.0 核对并更新 @ZameerAnsari,有什么消息吗?谢谢。 【参考方案1】:

我不是 100% 确定,但增强的分支定义是:

branches: [
  name: 'qa', prerelease: false
]

由于使用--branch 标志时会生成更改日志,因此您的配置文件中的分支定义可能是错误的。

您可以尝试使用我建议的增强语句来配置分支。

【讨论】:

以上是关于在非主分支上未通过语义发布生成自动更改日志的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JPA 和 Hibernate 在非主键上连接表

语义发布 - 向自动生成的发布说明添加更多部分

多版本OSS开发有一个好的模式吗?

使用 IN vs = 运算符时在非主键列上使用聚集索引

在非主线程里面使用NSTimer创建和取消定时任务

ios的opengl究竟能不能在非主线程渲染