自动化版本管理

在我的十二因素方法论博客文章中,我提到了语义版本控制(SemVer),它定义了一组关于如何在新更改时增加版本的规则。几周后,我一直在寻找可以从提交生成变更日志并为我提升“package.json”文件中版本的工具。毫不奇怪,有很多可用的软件包,并且 semantic-release 脱颖而出,并提供了许多超出我所追求的功能。大致的工作流程如下:

  1. 向 dev 分支提交新的更改。将新功能合并到主分支中。
  2. CI/CD 管道对新代码运行所有测试。
  3. 语义发布包分析提交消息,相应地增加 package.json 文件中的版本号,更新变更日志文件,并进行新的提交以包含所有已更改的文件。
  4. Semantic-release 包在 GitHub/GitLab 上创建新版本。
  5. 建立并部署新的release。

目前,您可以将自动发布推送到 NPM、GitHub 和 GitLab,或者如果您愿意的话可以全部推送。在这篇文章中,我将提供有关如何在 GitHub 操作和 GitLab CI/CD 管道中为任何 JavaScript 项目设置此包的简单指南。