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

GitLab CI添加only/rules关键字后无规则作业消失问题咨询

GitLab CI合并请求流水线作业消失问题解答

核心触发逻辑

你遇到的现象是GitLab CI的作业默认过滤规则导致的,和为其他作业添加规则无直接关联,本质是合并请求类型的流水线对无显式规则作业的默认排除逻辑。

基础规则说明

GitLab中未配置only/except或rules的作业,默认的only匹配规则为[branches, tags],即这类作业默认仅在分支推送、标签推送触发的流水线中运行,默认不包含合并请求事件。

三个场景的具体解释

  1. 无任何规则的配置场景
    你测试的是分支推送(dev/master)场景的流水线,符合无规则作业的默认触发条件,因此两个作业都正常展示运行。
  2. 新增only: merge_requests的配置场景
    你此时测试的是合并请求事件触发的流水线:
  • 第二个作业显式指定了允许合并请求事件,因此可以匹配成功出现在流水线中
  • 第一个作业使用默认规则,无法匹配合并请求事件,因此被过滤消失
  1. 新增合并请求rules的配置场景
    逻辑和第二个场景完全一致,只是将only规则替换为了等价的rules事件判断,无规则的第一个作业依然无法匹配合并请求事件,因此被过滤。
    特别说明:哪怕你删除了配置了规则的第二个作业,在合并请求流水线中无规则的第一个作业依然不会出现,和其他作业的配置无关。

解决方案

如果希望无规则作业也可以在合并请求流水线中运行,为其显式添加合并请求事件的匹配规则即可,示例如下:

test_without_only_policy:
  stage: test_without_only_policy
  # 保留原有手动触发逻辑,同时支持合并请求场景
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      when: manual
    - when: manual
  script:
    - echo "Now I will show up in MR pipelines too"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:48:03