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
相关产品推荐
相关产品推荐

