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

如何配置GitLab合并请求到master时触发带分支参数的Jenkins自由风格任务?

实现GitLab合并到Master的MR触发Jenkins自由风格任务并传递源分支参数

方案一:优化GitLab官方Jenkins CI集成配置

1. 过滤仅针对Master分支的MR触发

在GitLab项目的设置 > 集成 > Jenkins CI页面:

  • 仅勾选「合并请求事件」,取消其他事件的勾选
  • 展开「高级设置」,在「触发条件」中:
    • 目标分支:填写master(若主分支为main则替换)
    • 事件类型:选择「合并请求创建」(若需要MR更新时也触发,可追加「合并请求更新」)

2. 传递源分支参数至Jenkins

  • 在Jenkins自由风格任务中,添加字符串参数,命名为SOURCE_BRANCH
  • 回到GitLab的Jenkins CI集成配置,在「构建触发器」的「自定义构建参数」中输入:
    SOURCE_BRANCH=${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}
    

GitLab会自动将当前MR的源分支名注入该变量,传递给Jenkins任务。

方案二:GitLab Webhook + Jenkins Generic Webhook Trigger插件(更灵活)

如果官方集成无法满足复杂需求,Webhook方案可控性更强:

1. Jenkins端配置

  • 安装Generic Webhook Trigger插件
  • 在目标自由风格任务中,添加该插件作为构建触发器:
    • 设置「Token」为自定义令牌(例如gitlab-mr-token)
    • 配置「提取参数」:
      • 变量名:SOURCE_BRANCH
      • JSON路径:$.object_attributes.source_branch
    • 添加「触发条件」:
      • 变量:$.object_attributes.target_branch
      • 表达式:master
      • 运算符:equals

2. GitLab端配置

  • 进入项目设置 > Webhooks,新增Webhook:
    • URL:http://<你的Jenkins地址>/generic-webhook-trigger/invoke?token=gitlab-mr-token(替换为实际Jenkins地址和令牌)
    • 触发事件:仅勾选「合并请求事件」
    • 根据Jenkins的协议,选择是否启用「SSL验证」
    • 保存后可点击「测试」验证触发是否正常

方案对比

  • 官方集成:配置步骤简单,无需额外插件,适合基础场景
  • Webhook方案:支持更复杂的过滤逻辑(如按MR标签、作者等触发),灵活性更高,适合个性化需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:19:01