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

GitLab MR页面点击Run pipeline按钮触发MR流水线的配置问题

GitLab WIP/Draft MR手动触发流水线解决方案

问题根因

现有规则的优先级顺序导致报错:第一条when: never规则优先级最高,只要MR标题匹配WIP/Draft前缀,无论后续的流水线来源规则是否匹配,所有作业都会被直接跳过,自然触发No stages/jobs for this pipeline错误。

修复方案

调整第一条拦截规则的判断条件,增加「MR页面手动触发流水线」的例外逻辑即可,其余原有规则完全保留。修改后的配置如下:

rules:
  - if: ($CI_MERGE_REQUEST_TITLE =~ /^WIP/ || $CI_MERGE_REQUEST_TITLE =~ /^Draft/) && !($CI_PIPELINE_SOURCE == "web" && $CI_MERGE_REQUEST_IID)
    when: never
  - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
  - if: '$CI_PIPELINE_SOURCE == "web"'

规则逻辑说明

调整后的规则完全兼容原有管控要求,仅新增手动触发例外:

  • 非WIP/Draft状态的MR,仍按原有逻辑自动触发MR事件流水线、支持web触发
  • WIP/Draft状态的MR仍然不会自动触发流水线,符合原先的管控预期
  • 仅当用户从MR详情页的「流水线」板块点击Run pipeline按钮时,会同时满足CI_PIPELINE_SOURCE == "web"和$CI_MERGE_REQUEST_IID变量存在两个条件,此时会跳过WIP/Draft拦截逻辑,正常启动流水线
  • 项目层面的普通web触发流水线(非MR页面发起)仍会遵守WIP/Draft拦截规则,不会出现管控漏洞

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:27:04