版本发布日志集成
只需要提交代码,更新版本号,相关的发布日志CHANGELOG、GitHub Release、发布说明会自动生成
- 如更新一个次版本号,在github的release版本信息中,能看到当前版本更新的commit列出来,以及集成changelog发版本日志记录,统计当前版本所提交的commit
- 可以通过github action来自动化完成
- 根据提交记录生成CHANGELOG.md
- 触发commit和发布版本号之后,触发了github action,github action识别到版本更新之后,会更新CHANGELOG.md和发布说明集成在release中看到
- 需要将当前版本的提交记录集成在GitHub Release 页面正文
- 提交版本号时commit信息可以为:bump version to 来语义化
实现原理
CHANGELOG.md:提交到仓库,作为长期版本日志- RELEASE_NOTES.md
- 临时生成,专门写入 GitHub Release Body正文内容
- 内容写入 GitHub Release 正文 Body, GitHub CLI 写入 Release 正文
# 编辑某个 GitHub Release,并把 RELEASE_NOTES.md 文件里的内容,作为 Release 正文。
gh release edit "$TAG" --notes-file RELEASE_NOTES.md
使用 semantic-release
semantic-release是一个自动化发版工具。- 根据 Git commit 自动判断版本号,自动生成 Release Notes,自动创建 Git Tag,自动生成GitHub Release 、自动生成CHANGELOG
- 使用
semantic-release来完成,如版本号、CHANGELOG.md、GitHub Release Body 都由这个库自动生成 - 通过GitHub Actions 跑 semantic-release自动化,当提交commit就会自动化执行生成
- semantic-release会判断commit是否符合发版本的规则,才会自动生成版本,比如commt类型为docs只是修改文档,不会触发发布
- 使用
semantic-release时,不需要手动 bump version- 不需要自己手动修改版本号提交,交给
semantic-release来完成
- 不需要自己手动修改版本号提交,交给
- 提交commit,push推送之后,就会触发github action跑
semantic-release,来生成changelog、Release 、自动生成版本号 - 通过
semantic-release发布之后,会出现semantic-release-bot- semantic-release 自动发布时使用的机器人账号