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

如何配置同时支持schedules与changes规则的GitLab-CI流水线

问题根因与修复方案

你的GitLab CI配置存在两处语法错误,导致changes规则未生效:

  • 缩进错误:changes 下的路径列表缩进层级不符合YAML规范,当前路径项和changes关键字平级,CI解析器无法识别这些路径属于changes匹配规则,直接导致推送场景下规则失效
  • 路径转义不规范:带空格的路径使用反斜杠转义容易触发YAML解析异常,无需用反斜杠转义,改用单引号包裹路径即可

修正后的配置片段
Example Tests: 
 stage: Example
 tags:
    - aws-medium-runner
 script:
   - MY_SCRIPT
 rules:
  - if: $SCHEDULE_A == "true" # 绑定调度器中的A类定时任务
    when: always
  - if: '$CI_PIPELINE_SOURCE == "push"' 
    changes: # 仅当指定目录下的文件发生变更时,推送操作才触发任务
      - 'Test Cases/Example/*'
      - 'Object Repository/Example/*'
      - 'Test Suites/Example/*'
      - 'Scripts/Example/*'
    when: always
 dependencies:
   - Set Release Version 

验证说明

修正后推送代码时:

  • 若修改内容命中上述4个目录下的文件,当前任务会正常触发
  • 若修改内容未命中上述路径,当前任务会自动跳过
  • 定时调度任务的逻辑不受影响,可正常按原有规则执行

内容的提问来源于stack exchange,提问作者Josh Young

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:06:03