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

如何编写GitLab CI作业规则:仅更新CHANGELOG.md时不触发作业

GitLab CI作业规则实现方案

可以通过GitLab CI的rules结合文件变更判断实现需求,核心逻辑是仅当默认分支提交中仅包含CHANGELOG.md时跳过作业,其余情况正常执行。

具体配置示例

# 替换为你的作业名称
your_target_job:
  script:
    - # 填写你的作业执行脚本
  rules:
    # 规则1:默认分支提交仅修改CHANGELOG.md时,跳过作业
    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
      changes:
        - CHANGELOG.md
      if: '$(git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA | wc -l) -eq 1'
      when: never
    # 规则2:默认分支下其他所有情况,执行作业
    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
      when: always

规则逻辑说明

  1. 第一条规则:
    • 先通过changes: - CHANGELOG.md筛选出所有修改过CHANGELOG.md的提交
    • 再通过git diff统计本次提交的变更文件数量,当数量为1时(即仅修改了CHANGELOG.md),触发when: never跳过作业
  2. 第二条规则:
    • 覆盖默认分支下其余所有场景:包括同时修改CHANGELOG.md和其他文件、未修改CHANGELOG.md但修改了其他文件的情况,均会正常执行作业

适配backmerge场景说明

对于semantic-release的backmerge插件生成的回退合并提交:

  • 若合并提交仅更新CHANGELOG.md,会触发第一条规则跳过流水线
  • 若合并提交包含其他文件变更,则触发第二条规则正常运行流水线,完全匹配需求

内容的提问来源于stack exchange,提问作者J W

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 20:22:48