mcpField
S
semantic-release

semantic-release

官方Agent-ready
github.com开发者工具24.1ksemantic-release3 周前更新
代码仓库访问官网

关于 semantic-release

semantic-release 根据代码提交自动确定版本号、生成更新日志,并发布至 npm 等包管理器。与持续集成工作流集成,消除手动版本管理的步骤。

主要功能

  1. 01分析提交消息,确定语义化版本号增量
  2. 02生成详细的更新日志和发布说明
  3. 03自动推送版本标签和发布至 npm、GitHub Releases
  4. 04支持多个发布渠道和自定义插件
  5. 05提供干运行模式验证发布步骤

适用场景

  1. 01集成至 CI/CD 流程自动化包发布
  2. 02维护多包 monorepo 的版本一致性
  3. 03减少手动版本管理和发布的人工错误

安装

选择你的系统或包管理器,复制命令到终端运行。

$
npm install -D semantic-release

安装完成后运行semantic-release --version确认安装成功。

命令示例

常用命令按使用顺序排列。

01
npx semantic-release --dry-run
02
npx semantic-release

详细介绍

📦🚀 semantic-release

全自动版本管理和软件包发布

在 GitHub Discussions 上加入社区 构建状态 OpenSSF 评分卡 semantic-release:angular

npm 最新版本 npm beta 版本

semantic-release 可自动完成整个软件包发布工作流,包括:确定下一个版本号、生成发行说明以及发布软件包。

这消除了人类情绪与版本号之间的直接联系,严格遵循语义化版本规范,并向使用者传达变更的影响。

相信我们,这会让你的工作流变得更好。– egghead.io

亮点

它如何工作?

提交消息格式

semantic-release 使用提交消息来确定代码库中变更对使用者的影响。 遵循正式的提交消息规范后,semantic-release 会自动确定下一个语义化版本,生成变更日志并发布版本。

默认情况下,semantic-release 使用 Angular 提交消息规范。 可以通过 @semantic-release/commit-analyzer 和 @semantic-release/release-notes-generator 插件的 preset 或 config 选项更改提交消息格式。

可以使用 commitizen 或 commitlint 等工具,帮助贡献者编写并强制使用有效的提交消息。

下表展示了运行 semantic-release 时,不同的提交消息会触发哪种版本发布(使用默认配置):

提交消息发布类型
fix(pencil): stop graphite breaking when too much pressure applied补丁 修复版本
feat(pencil): add 'graphiteWidth' option次要 功能版本
perf(pencil): remove graphiteWidth option

BREAKING CHANGE: The graphiteWidth option has been removed.
The default graphite width of 10mm is always used for performance reasons.
主要 重大变更版本
(请注意,BREAKING CHANGE: 标记必须位于提交消息的页脚中)
使用 CI 自动化

semantic-release 旨在每次发布分支上的构建成功后,在 CI 环境中执行。 这样,发布流程就不需要任何人直接参与,并确保发布不带感情色彩,不拘泥于情怀。

触发发布

每当向某个发布分支(例如:master、main、next、beta)添加新提交时,无论是通过 git push、合并拉取请求,还是从其他分支合并,都会触发 CI 构建,并运行 semantic-release 命令。如果自上次发布以来,代码库中存在影响软件包功能的变更,该命令就会执行发布。

semantic-release 提供多种方式,用于控制已发布版本的发布时间、内容和受众。 以下教程提供了工作流示例:

发布步骤

运行测试后,semantic-release 命令将执行以下步骤:

步骤说明
验证条件验证继续发布所需的所有条件。
获取上次发布版本通过分析 Git 标签,获取与上次发布版本对应的提交。
分析提交根据自上次发布以来添加的提交,确定发布类型。
验证发布验证发布是否符合规范。
生成说明为自上次发布以来添加的提交生成发布说明。
创建 Git 标签创建与新发布版本对应的 Git 标签。
准备准备发布。
发布发布版本。
通知通知新版本发布或发生的错误。

要求

要使用 semantic-release,你需要:

文档

获取帮助

徽章

在 README 中添加此徽章,让大家知道你的软件包是使用 semantic-release 发布的,并遵循哪种提交约定。

semantic-release: angular

[![semantic-release: angular](https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)

团队

Gregor MartynusPierre VanduynslagerMatt Travi
Gregor MartynusPierre VanduynslagerMatt Travi

Alumni

Stephan BönnemannRolf Erik LekangJohannes Jörg SchmidtFinn PaulsChristoph Witzko
Stephan BönnemannRolf Erik LekangJohannes Jörg SchmidtFinn PaulsChristoph Witzko

Kill all humans

评论

支持 Markdown