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

GitLab流水线:合并到main分支的MR触发失败问题求助

GitLab CI流水线仅触发合并到main分支MR的正确配置

你之前的配置无法触发流水线,核心原因是在merge_request_event事件中,CI_COMMIT_BRANCH和CI_COMMIT_REF_NAME指向的是MR的源分支,而非你要合并到的目标分支(main)。要判断MR的目标分支,必须使用GitLab专为MR场景提供的预定义变量CI_MERGE_REQUEST_TARGET_BRANCH_NAME。

以下是正确的配置:

build:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
      when: always 
    - if: '$CI_PIPELINE_SOURCE == "web"'
      when: always 
    - when: never 

如果你的项目默认分支就是main,也可以用$CI_DEFAULT_BRANCH替代硬编码的"main",这样配置更灵活,后续默认分支变更时无需修改规则:

build:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
      when: always 
    - if: '$CI_PIPELINE_SOURCE == "web"'
      when: always 
    - when: never 

这个配置的效果:

  • 仅当创建或更新目标分支为main的MR时,自动触发流水线。
  • 保留通过Web UI手动触发流水线的功能。
  • 其他事件(如直接提交代码到分支、标签推送等)不会触发流水线。

内容的提问来源于stack exchange,提问作者Adriaan Nering Bögel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:18:12