Semantic Release 自动发布
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的指引,安装 @user_3c6cb52e/semantic-release-automated-versioning-and-release-publishing 技能到你的 AI 助手中。
技能介绍
解决什么问题
当版本号、CHANGELOG 和发布动作分散在多人协作里时,最常见的失败不是代码写错,而是流程不一致:某个 feature 分支漏了 chore,版本被手工推进了两次,tag 打在错误的 commit 上,npm 上的版本被覆盖,或者发布记录只存在于某个人的终端历史里。semantic-release 把这类判断交给机器:提交信息负责表达意图,CI 负责执行验证,工具负责计算下一个版本号、更新变更日志、打 tag、发布包。它不参与业务逻辑,只解决「谁、在哪个 commit、以什么版本、发布到哪」的确定性问题。
核心能力
- 版本号自动计算:读取 conventional commits,按提交类型和范围推导下一个语义化版本号。
- CHANGELOG 生成:将历史提交按版本分组,自动生成可读的变更记录,减少人工整理。
- Tag 创建:在目标 commit 上创建匹配的版本标签,使发布对象可追溯。
- 发布执行:把构建产物发布到 npm 等目标,也可以扩展到其他语言和包管理器。
- 配置复用:通过可共享配置和插件体系统一团队内的发布规则,避免每个仓库重新发明流程。
典型工作流
- 开发者按约定格式提交,例如
feat(api): add export endpoint。 - CI 在目标分支运行测试、构建和发布步骤。
- 工具分析提交历史,判断是否触发 minor 版本升级。
- 生成或更新 CHANGELOG,创建 Git tag。
- 发布到配置的包仓库,并把结果记录在 CI 产物中。
适用边界
适合需要可重复发布流程的自动化场景,尤其是 npm 项目,以及希望用提交信息驱动版本管理的 agent workflow。它依赖 Git 历史、CI 环境和 Node.js 版本满足上游要求;如果仓库历史不规范、分支模型混乱或发布权限无法被 CI 安全持有,自动化结果也会受到影响。此外,commit message format 会直接影响版本推导,团队需要先统一提交规范,再讨论插件和共享配置。
使用场景
- 在多分支并行开发的 npm 项目中,当主分支合并新特性时,自动计算版本号并发布到 npm 仓库,避免手工改号出错。
- 在基于 CI 运行的开源仓库中,每次发布前自动根据提交记录生成标准化的 CHANGELOG,并创建对应的 Git tag 供用户查阅。
- 在需要支持多种语言和包管理器的 monorepo 项目里,通过插件机制统一配置各子包的发布流程,实现一键自动化发布。
- 在 agent 工作流中,将 conventional commits 转换为语义化版本发布,确保多次重复执行时版本号递增且不遗漏变更记录。
适合人员
- 前端工程师:希望在多分支 npm 项目中,当主分支合并时自动计算版本号并发布,免去手工改号和打 tag 的繁琐。
- 开源项目维护者:需要在 CI 环境中根据提交记录自动生成标准化的 CHANGELOG,并创建 Git tag 供社区查阅。
- 平台架构师:负责管理支持多种语言的 monorepo 仓库,希望通过插件统一各子包的发布配置,实现一键自动化发布。
- AI Agent 开发者:构建需要重复执行发布动作的自动化工作流,希望利用 conventional commits 确保版本号递增且不遗漏变更。