在我的十二因素方法论博客文章中,我提到了语义版本控制(SemVer),它定义了一组关于如何在新更改时增加版本的规则。几周后,我一直在寻找可以从提交生成变更日志并为我提升“package.json”文件中版本的工具。毫不奇怪,有很多可用的软件包,并且 semantic-release 脱颖而出,并提供了许多超出我所追求的功能。大致的工作流程如下:
- 向 dev 分支提交新的更改。将新功能合并到主分支中。
- CI/CD 管道对新代码运行所有测试。
- 语义发布包分析提交消息,相应地增加
package.json
文件中的版本号,更新变更日志文件,并进行新的提交以包含所有已更改的文件。 - Semantic-release 包在 GitHub/GitLab 上创建新版本。
- 建立并部署新的release。
目前,您可以将自动发布推送到 NPM、GitHub 和 GitLab,或者如果您愿意的话可以全部推送。在这篇文章中,我将提供有关如何在 GitHub 操作和 GitLab CI/CD 管道中为任何 JavaScript 项目设置此包的简单指南。