我已经设置了 github 操作以在 PR 上针对development
和main
. 然后在工作流程中我有一个任务如下:
if [ ${{ github.base_ref }} = development ]; then
npx lerna version --conventional-prerelease --preid beta --yes
else
npx lerna version --conventional-graduate --yes
fi
基本上是发布一个 beta 版本,然后development
在 PR 反对该分支时发布,同时从最后一个 beta 版本毕业并从main
PR 反对main
分支时发布。这很好用,除非在使 beta 版本毕业时development
保持其最后一个 beta 版本,同时main
升级到毕业的生产版本(例如development
是 1.0.1-beta.0main
而是 1.0.1)。CHANGELOG.md
Beta版毕业时的内容也有所不同。这种行为会导致main
和development
不同步,因为CHANGELOG.md
和生产版本main
永远不会传播到development
分支中。你如何解决这个问题?
主意
每次 beta 毕业后main
重新合并。development
这与git
潮流背道而驰。
这是lerna.json
:
{
"packages": [
"packages/*"
],
"version": "independent",
"publishConfig": {
"access": "public"
},
"command": {
"publish": {
"conventionalCommits": true,
"verifyAccess": false,
"commitHooks": false,
"ignoreChanges": [
"*.md",
"*(\\.|-)test.ts"
],
"version": {
"message": "chore(release): version and release commit"
}
}
}
}