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

GitLab CI rules如何实现多条件同时满足才触发作业?

GitLab CI 多条件同时满足的rules配置方案

GitLab CI 中 rules 的默认匹配逻辑如下:

  • 同一条规则内的多个判断属性(if/changes/exists等)为且关系,需要全部满足才会命中该条规则
  • 多条规则之间为或关系,命中任意一条规则就会将作业加入流水线

你当前的写法是把两个条件拆成了两条独立规则,所以只要满足其中任意一个条件就会触发作业。要实现两个条件同时满足才触发,只需要把if和changes合并到同一条规则中即可,正确配置如下:

rules:
  - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
    changes:
      - folder1/*.xml # 注意你原配置中的路径写为filder1,若为拼写错误请自行修正

上述配置生效后,只有同时满足「是目标分支为main的合并请求流水线」、「folder1目录下的xml文件发生变更」两个条件,作业才会被加入流水线,否则不会纳入流水线。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:24:04