跳到主要内容

自动化版本发布

  • 只需要提交代码,更新版本号,相关的发布日志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 Pleasesemantic-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 插件