Webhooks
在GitLab的项目中,通常会使用Webhook的各种事件来触发对应的构建,通常配置好后会向设定好的url发送post请求。
与Jenkins的集成
jenkins 插件
Build Triggers
配置build trigger,:拷贝 webhook url,token,配置webhook
填上相应的值。
测试,相应的jenkins job 会被执行
测试通过,会看到 http请求返回200;
查看webhook request:
在edit里面我们可以查询到最近的trigger,看到完整的Request details,在这里的我们可以拿到想要的值用在pipeline里面
这里的插件已经有封装好的暴露在外的可用变量,这些的变量可以在pipeline中使用,
echo env.gitlabMergeRequestIid
echo env.gitlabMergeDescription
echo gitlabMergeRequestLastCommit
Generic Webhook Trigger
这里可以选择你需要配置的参数。
具体的jenkins pipeline
triggers {
GenericTrigger(
genericVariables: [
[key: 'REF', value: '$.ref'],
[key: 'COMMIT', value: '$.after'],
],
genericHeaderVariables: [
[key: 'X-GitLab-Event']
],
causeString: "Triggered by pushing to $ref",
token: 'att',
printContributedVariables: true,
printPostContent: true,
regexpFilterText: '$x_gitlab_event on $REF',
regexpFilterExpression: '^Push Hook\\son\\srefs/heads/master'
)
常用 events
Merge Requests Events:当一个merge request被创建,更新或者merged; 使用场景,当有开发提交一个mr后通过这个事件触发相应的测试,比如UT/IT,只有当测试通过了才允许merged。
Push Events: 当有代码push到repo,这里可以设置具体的branch;使用场景,基于master发布的流程,可以通过push事件去构建对应的测试环境
Tag Push Events: 当有新的tag push到repo,使用场景,可以通过tag去发布regression stage production环境
Comments: 当添加一些Comment