GitLab Webhook 使用

2021-05-11  本文已影响0人  _夏兮

Webhooks

在GitLab的项目中,通常会使用Webhook的各种事件来触发对应的构建,通常配置好后会向设定好的url发送post请求。

与Jenkins的集成

jenkins 插件

image.png

Build 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.png
WeChatf78c9f15496acef2f62d23536d30c8a9.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

上一篇下一篇

猜你喜欢

热点阅读