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

GitLab CI中能否为if规则与changes规则添加OR条件?

GitLab CI中if规则与changes规则的OR条件组合实现

当然可以实现if规则与changes规则的OR逻辑。GitLab CI中,默认多个独立的rules条目是AND关系(即所有条目都满足才触发),要实现OR关系,需要将两个条件合并到同一个rules条目中,用逻辑或运算符||连接。

正确配置示例

将你的规则修改为如下形式即可实现“分支非main 或 src目录存在变更时触发任务”的逻辑:

rules:
  - if: '$CI_COMMIT_BRANCH != "main" || changes:src/*'

逻辑说明

  • 当$CI_COMMIT_BRANCH != "main"为真(即当前分支不是main),或者src/*路径下有文件变更时,该任务会被触发;
  • 只有当当前分支是main,并且src目录没有任何变更时,任务才不会触发,完美匹配你提到的场景:
    • MR流水线中,无功能变更(src无修改)时无需执行测试;
    • main分支流水线因MR阶段已完成测试,无需重复执行测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:52:41