You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可在Github Actions的semantic release中排除指定提交的发布说明?

解决方案

可以实现该需求,核心是利用@semantic-release/commit-analyzer和@semantic-release/release-notes-generator两个插件支持独立配置规则的特性,分别控制提交的版本升级判断逻辑和发布说明展示逻辑即可,二者规则互不影响。

配置步骤

1. 调整semantic-release核心配置

在项目的semantic-release配置文件(支持release.config.js、.releaserc.json或package.json中的release字段)中分别配置两个插件的规则,示例如下:

// release.config.js 示例
module.exports = {
  branches: ['main'],
  plugins: [
    // 提交分析插件:定义哪些提交会触发版本升级
    [
      '@semantic-release/commit-analyzer',
      {
        preset: 'angular',
        releaseRules: [
          // 示例规则:chore类型提交触发补丁版本升级
          { type: 'chore', release: 'patch' },
          // 可自定义更细粒度规则,比如匹配指定scope、提交关键词等
          { scope: 'deps', release: 'patch' }
        ]
      }
    ],
    // 发布说明生成插件:定义哪些提交不展示在发布说明中
    [
      '@semantic-release/release-notes-generator',
      {
        preset: 'angular',
        // 示例规则:排除所有chore类型提交,不会出现在生成的发布说明里
        excludeTypes: ['chore']
      }
    ],
    // 其余插件保持原有配置即可
    '@semantic-release/changelog',
    '@semantic-release/github'
  ]
}

2. Github Actions workflow适配

不需要修改原有Github Actions的workflow逻辑,只要项目根目录存在正确的semantic-release配置文件,正常调用semantic-release action即可生效,示例workflow片段:

steps:
  - uses: actions/checkout@v4
    with:
      fetch-depth: 0 # 必须拉取全量提交记录才能正确分析
  - name: Run semantic release
    uses: semantic-release/semantic-release@v22
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

注意事项

  • 两个插件的preset参数要保持一致,避免规则逻辑不匹配
  • 如果需要更细粒度的过滤(不是按提交类型过滤,而是匹配特定提交内容),可以给release-notes-generator配置transform回调,匹配到目标提交时返回false即可过滤该条记录
  • 本地验证可以执行npx semantic-release --dry-run,测试版本升级逻辑和生成的发布说明是否符合预期

内容的提问来源于stack exchange,提问作者lakshmiravali rimmalapudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:54:01