Webhooks
在GitLab的项目中,通常会使用Webhook的各种事件来触发对应的构建,通常配置好后会向设定好的url发送post请求。
与Jenkins的集成
jenkins 插件
image.pngBuild Triggers
配置build trigger,: WeChatd5398874682ccc43eea23a38e9a766e3.png拷贝 webhook url,token,配置webhook
WeChatf30603ef8bdb9ee63ddec14089d95109.png
填上相应的值。
测试,相应的jenkins job 会被执行
WeChat055e0869d3c9e1c4d48137a1280da12e.png
测试通过,会看到 http请求返回200;
WeChatf514cbc0aa4e5fae01db5aab7ad8386d.png
查看webhook request:
在edit里面我们可以查询到最近的trigger,看到完整的Request details,在这里的我们可以拿到想要的值用在pipeline里面
WeChata60fd1089db69a84978c241b8213e18f.png WeChat0348f8eb9d1f4522a94d7b709c5e8d66.png
这里的插件已经有封装好的暴露在外的可用变量,这些的变量可以在pipeline中使用,
echo env.gitlabMergeRequestIid
echo env.gitlabMergeDescription
echo gitlabMergeRequestLastCommit
Generic Webhook Trigger
WeChatdd95387ece6e07ad4760317b2fd57216.pngWeChatf78c9f15496acef2f62d23536d30c8a9.png
这里可以选择你需要配置的参数。
具体的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
网友评论