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

如何配置规则避免.gitlab-ci.yml变更触发GitLab CI指定作业

问题原因
  • GitLab CI中rules关键字优先级高于旧版的only/except,之前尝试的except配置没有和rules搭配使用,因此无法生效
  • 原配置中的Stage B未设置任何过滤规则,默认会被加入所有触发的流水线中,因此修改.gitlab-ci.yml时也会显示在流水线列表中
解决方案

直接调整Stage B的作业配置,新增rules过滤规则即可,修改后的完整配置如下:

stages:
 - A
 - B
 
Stage A:
  stage: A
  script:
    - echo "TEST"
  rules:
    - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.DEV\d+/'
  tags:
    - runner
    
Stage B:
  stage: B
  script:
    - echo "TEST"
  rules:
    # 变更包含.gitlab-ci.yml时,不将该作业加入流水线
    - changes:
        - .gitlab-ci.yml
      when: never
    # 其余场景保持手动触发逻辑
    - when: manual
  tags:
    - runner
生效场景验证
  • 单独推送.gitlab-ci.yml变更时,Stage B不会被加入流水线,符合需求
  • 合并请求包含.gitlab-ci.yml变更时,Stage B不会被加入流水线,符合需求
  • 其他文件变更的推送、合并请求场景中,Stage B仍然作为手动作业正常出现在流水线中,不影响原有逻辑

内容的提问来源于stack exchange,提问作者Sushil.R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:57:04