semantic-release 将整个软件包的发布工作流程自动化,包括:确定下一个版本号、生成发布说明以及发布软件包。
semantic-release更适合在 CI 环境中运行,它自带支持各种 git server 的认证支持,如 Github,Gitlab,Bitbucket 等等,此外,还支持插件,以便完成其他后续的流程步骤,比如自动生成 git tag 和 release note 之后再 push 回中央仓库,自动发布 npm 包等等。
semantic-release 会根据规范化的 commit 信息生成发布日志,默认使用 angular 规则。其他规则可以配置插件完成。
semantic-release 大致的工作流如下
- 提交到特定的分支触发 release 流程
- 验证 commit 信息,生成 release note,打 git tag
- 其他后续流程,如生成 CHANGELOG.md , npm publish 等等(通过插件完成)