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

GitLab CI规则引用采用AND还是OR逻辑?

GitLab CI规则引用的逻辑判定

你遇到的这种情况,GitLab CI会将这两条引用的规则视为OR(或)条件,只要任意一条规则的条件满足,任务就会触发运行。

具体逻辑说明

GitLab CI的rules是按顺序进行判断的:

  • 从第一条规则开始检查,只要某一条规则的条件为真,就会直接决定任务的运行状态(默认满足条件时任务运行),不会再继续判断后续规则。这就是你观察到“第一条规则为真时任务即运行”的原因。
  • 如果第一条规则不满足,才会继续检查第二条规则,若第二条满足,任务同样会运行。

代码对应场景

你的规则定义和引用写法等价于直接写:

job_one:
  ...
  rules:
    - if: '$APPLE == "apple"'
    - if: '$ORANGE == "orange"'

这种写法下,只要APPLE等于apple或者ORANGE等于orange,job_one就会运行。

如何实现AND(与)逻辑

如果需要两个条件同时满足才运行任务,需要将两个条件合并到同一条规则的if语句中,用&&连接:

.run_for_both:
  - if: '$APPLE == "apple" && $ORANGE == "orange"'

job_one:
  ...
  rules:
    - !reference [.run_for_both]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:25:13