Jenkins 配置仅合并代码后触发流水线
使用 GitLab+Jenkins 集成, 使用 Jenkins 的 Generic WebHook 插件;此插件可以作为各个工具间集成使用的通用方式,但是遇到些场景需要写些代码。关于 “合并代码后触发 Pipeline”的配置方式, 其实思路简单,实现和让我描述起来还是有点复杂的,今天来做一下,分享给需要的伙伴。
一、Jenkins 作业设置
开启 webhook trigger;
开启调试信息(为了便于拿到 Gitlab POST 数据)
为触发器配置一个全局且唯一的 Token(一般使用作业名字)
生成该作业的触发 URL
http://192.168.1.200:8080/generic-webhook-trigger/invoke?token=devops-merge-trigger
二、GitLab 项目设置
创建一个项目
配置 Merge request 事件的 webhook。
三、分析数据
创建 Merge request,观察数据。
合并后 GitLab 的 webhook 触发了, 我们需要对比开启请求和合并请求的数据。找不同,找特点。
# approved 状态
$.event_type = merge_request
$.object_attributes.state = opened
$.object_attributes.action = approved
# merge 状态
$.event_type = merge_request
$.object_attributes.state = merged
$.object_attributes.action = merge
#拿到 source 和 target 分支
$.object_attributes.source_branch
$.object_attributes.target_branch
四、开始集成
此部分都是在 jenkins 上面配置的
配置 Generic Webhook 的过滤没用的请求,实现精准触发;
完成!
此文出处:文章
版权声明: 本文为 InfoQ 作者【这我可不懂】的原创文章。
原文链接:【http://xie.infoq.cn/article/42acc6eb4348091fecde92ead】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论