SuperAPI AI 工具集

setup-semantic-release

通用与其它

查看项目

更新于 10-15 19:56

技能介绍

用途:在仓库中端到端接入自动化发布流程,让版本号、CHANGELOG.md、git 标签和 GitHub Release 全部由提交信息推导,人工只需按规范书写提交主题。若仓库已有 .releaserc*、使用其他发布工具(changesets、release-it、standard-version)或没有 package.json,应停止并说明,避免叠加第二套发布流水线导致重复标签和重复变更日志。

前提:package.json、GitHub 远程仓库、Node ≥22.14(24.x 线需 ≥24.10,为 semantic-release@^25 的 engines 下限;@commitlint/*@^21 需 ≥22.12)以及 GitHub Actions。

主要能力与用法:安装 @commitlint/cli、@commitlint/config-conventional、semantic-release、@semantic-release/changelog、@semantic-release/git、husky 等开发依赖;创建 commitlint.config.js 校验提交信息(注意模块语法需与 package.json 的 type 匹配);创建 .releaserc.json 配置分支与插件顺序(analyzer → notes-generator → changelog → git → github);用 husky 初始化并写入 commit-msg 与 pre-commit 钩子;创建起始 CHANGELOG.md;创建 .github/workflows/release.yml,其中 fetch-depth: 0 为必需。

提交类型与发布:feat 触发 minor,fix 触发 patch,feat! 或 BREAKING CHANGE 页脚触发 major,docs/style/refactor/perf/test/build/ci/chore/revert 不发布。

限制与注意:显式 plugins 数组会替换默认插件,需发布 npm 时手动加入 @semantic-release/npm,否则应移除 NPM_TOKEN;changelog 插件必须位于 git 插件之前;body-max-line-length 设为 0 是为避免发布提交正文超长;subject-case 为 lower-case 会拒绝大写主题;[skip ci] 用于防止 CI 循环;commitlint 配置语法不匹配会导致每次提交在规则运行前即失败。预发布分支与故障排查见 references/REFERENCE.md。