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

GitLab Merged Result Pipeline:是否会变更所有现有流水线?

GitLab合并结果流水线设置说明与配置方法

一、设置的作用说明

启用该复选框后,不会替换原有针对推送提交的流水线,而是为合并请求(MR)额外创建一条基于「模拟合并后结果」的流水线:

  • 原有流水线:推送代码到分支时仍会触发,运行当前分支的实际提交代码
  • 合并结果流水线:仅在MR创建/更新时触发,自动将MR分支代码与目标分支(如main)模拟合并,基于合并后的代码运行CI,提前发现合并后可能出现的问题

二、YAML配置方法(针对额外的合并结果流水线)

方式1:针对单个Job配置触发规则

在需要运行在合并结果流水线的Job中,通过rules指定触发条件,同时保留原有推送分支的触发规则:

build:
  script:
    - npm install
    - npm run build
  rules:
    # 匹配合并结果流水线(MR事件)
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      when: always
    # 保留原有分支推送的触发规则
    - if: '$CI_COMMIT_BRANCH'
      when: always

方式2:通过Workflow全局控制流水线触发逻辑

如果希望统一管理所有流水线的触发规则,可以在配置顶部添加workflow:

workflow:
  rules:
    # 触发合并结果流水线:当存在MR时,使用目标分支作为上下文
    - if: '$CI_MERGE_REQUEST_IID'
      variables:
        CI_COMMIT_BRANCH: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
    # 触发普通推送流水线:当推送分支时触发
    - if: '$CI_COMMIT_BRANCH'

关键变量说明

  • $CI_PIPELINE_SOURCE == "merge_request_event":标识当前是MR相关的流水线(包括合并结果流水线)
  • $CI_MERGE_REQUEST_IID:存在该变量时,说明当前处于合并请求上下文

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:21:00