引言
在当今快速迭代的软件开发中,版本管理变得越来越重要。Semantic Versioning语义化版本规则提供了一种定义版本号的方法,可以轻松地表明新的版本包含哪些类型的变更。而自动化版发布工具 semantic-release 是基于语义化规则下的版本管理工具,可以自动化发布新的版本和变更日志,并且可与 GitHub 等代码版本控制管理工具无缝对接,真正实现了绝对的自动化。
在这篇文章中我们将向您展示:
- 如何使用 npm 包 @dxcli/semantic-release 快速快捷地启用自动化版本发布
- 如何设置个人的GitHub存储库与Travis进行集成
- 如何在npm包发布时自动生成更新日志
前置要求
在开始之前确保您已经安装以下环境:
- Node.js (版本 >=8.9.0)
安装 semantic-release
在您的终端应用程序中,使用以下命令安装最新版本的 @dxcli/semantic-release 包。
npm i -D @dxcli/semantic-release
运行 semantic-release
安装完成后,我们需要设置 semantic-release。在你的项目中新建一个 .releaserc.js
文件。
module.exports = { plugins: [ '@semantic-release/commit-analyzer', '@semantic-release/release-notes-generator', '@semantic-release/npm', '@semantic-release/github' ] }
.releaserc.js
文件告诉 semantic-release 应该发布哪些信息,具体包括哪些插件,以及如何生成版本号。本例中,我们使用了四个插件:
@semantic-release/commit-analyzer
确定每个提交的类型(例如修复错误或添加功能)并确定新版本号。@semantic-release/release-notes-generator
根据提交类型,生成发布说明。@semantic-release/npm
发布到 NPM。@semantic-release/github
发布到 Github。
接下来在命令行中进行以下操作:
npx semantic-release --dry-run
此时 semantic-release 会进行测试发布( --dry-run
),打印所有相关信息,以便您检查它是否正确。
在实际使用中,请将 --dry-run
删除,该命令将发布您的软件。
npx semantic-release
配置 Travis CI
semantic-release 的整个过程是由 CI/CD 工具来驱动执行的。我们可以使用 Travis CI 将 semantic-release 集成到 GitHub 存储库中,并在自动构建组合时自动发布新版本。
创建 .travis.yml
首先我们需要在 GitHub 中创建 .travis.yml
文件并添加以下代码:
-- -------------------- ---- ------- --------- ------- -------- -------- ------ ------------ - ------------ ---- ------- - ------- ---------- ------ -------- ------ ------ --------------- - ------- ----------- -- -------------------- --- ------------------- --- --------------- ---- ----------- -- - --- --- ----------- ------- - --- ----------------
在上文中的代码中,我们的 CI/CD 环境使用 Node.js LTS 版本。我们在全局环境中定义了一个安全的加密对象,用于存储程序的安全密钥和其他私密信息。我们还在 script 中运行 npx semantic-release
,这是我们在应用程序中调用 semantic-release 的方式。
配置 GitHub 存储库与 Travis CI
Travis CI 是一个备受欢迎的 CI/CD 工具,在您的 CI/CD 环境中为您的项目提供了实时的构建和发布支持。上面提到的 .travis.yml
文件会告诉 Travis CI 在发生某些事件时如何构建和测试我们的代码。
让我们在 Travis CI 中配置我们的项目:
- 访问travis-ci.com并使用GitHub凭据登录
- 为您的项目启用CI,选择要与Travis CI一起使用的存储库
- 在存储库下的设置中,添加您创建的 GH_TOKEN 变量的值
配置 GitHub 模块包
接下来,我们需要使用 GitHub 存储库上的核心模块包(@dxcli/semantic-release),并在工作流程中启用相应的构建和发布过程。
npm install -g semantic-release-cli semantic-release-cli setup
出现了下面的问题:
? What SCM provider do you use?
此问题意味着,我们需要指定我们想要使用的 SCM 提供商。由于我们使用的是 GitHub,我们需要输入 GitHub
。
回答完所有问题后,在 package.json
中添加以下部分。
-- -------------------- ---- ------- ---------- - ------------------- --------------------------- ---------- - ------------------------------ ------------------------ --------------------------- ----------------------- -- ---------- - --------------------------- ----------------------- - -
安装依赖:
npm install --save-dev @semantic-release/git \ @semantic-release/github @semantic-release/changelog
发布时,拿到的版本
将会作为GIT 标签
,并且发布到 NPM 与 GitHub 仓库中。
总结
在本文中,我们介绍了如何使用 npm 包 @dxcli/semantic-release 快速快捷地启用自动化版本发布,并介绍了如何在 GitHub 存储库与 Travis CI 等 CI/CD 工具中配置插件。我们还讨论了如何生成更新日志并将其添加到发布中。这些信息可以用来帮助加速稳定版本发布,并优化您的软件开发流程。
至此感谢您阅读这篇文章,我们希望您现在对于 semantic-release 有一个好的基础理解,并且能够将其正式应用在您的项目中。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/dxcli-semantic-release