自动化版本发布
- 只需要提交代码,更新版本号,相关的发布日志CHANGELOG、GitHub Release、发布说明会自动生成
- 根据提交记录生成CHANGELOG.md
- 可以通过github action来自动化完成
- 自动化打包、自动化生成发布日志、自动化生成Release Notes
- Release Notes 表示:版本发布信息、版本发布说明、版本发布日志
Release Please
- 根据 Commits 更新版本和
CHANGELOG.md,开一个 Release PR;合并后创建 tag 和 GitHub Release - Release Please 生成待审核的 Release PR;合并后确定版本、Changelog 和 Release
- 当在主分支有可发布的commit后,会自动创建或更新一个 **Release PR,**包含版本号变更、
CHANGELOG.md和发布说明草稿 release-please最常见的用法就是配合 GitHub Actions + Conventional Commits- 它会根据
feat:、fix:这类 commit 自动判断版本号,然后创建一个 Release PR;你合并这个 PR 后,它再创建 Git Tag 和 GitHub Release - 场景:希望自动整理内容,但发布前还要人工审核
使用方式:
- 推荐在GitHub Actions 方式使用如:uses: googleapis/release-please-action@v4
- GitHub Actions 会自动拉取并运行 release-please Action
- 通过GitHub Actions 用,就由 Action 自动提供运行环境,不需要 npm install安装包
- CLI 本地安装 / 直接运行
- 通过cli命令脚本可以也运行来触发自动发布
- 需要在Github仓库中配置Action的权限
- 仓库打开 Settings → Actions → General → Workflow permissions,勾选 Allow GitHub Actions to create and approve pull requests 并保存
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来完成
- 不需要自己手动修改版本号提交,交给
Release Please 对比 semantic-release
- Release Please 的设计是先开 Release PR,合并后再更新版本、打 tag、创建 GitHub Release
- 可以检查版本号和commit内容、版本号内容说明检查
- semantic-release:无需审核就自动生成新版本并发布
| 对比项 | Release Please | semantic-release |
|---|---|---|
| 版本决定 | 根据 Conventional Commits 计算版本,先开 Release PR | 根据 Conventional Commits 自动计算版本并发布 |
| 审核流程 | 人工审核 Release PR;合并时更新版本和 CHANGELOG.md,创建 tag 与 GitHub Release | 默认没有 Release PR 这道人工关卡 |
| Release Notes | 随 Release PR 生成,合并后进入 GitHub Release | 生成 GitHub Release Notes;需要仓库内 CHANGELOG.md 时可加 changelog 插件 |