美文网首页
使用Generic Webhook Trigger插件实现触发

使用Generic Webhook Trigger插件实现触发

作者: super_pcm | 来源:发表于2022-09-12 11:30 被阅读0次

1 Generic Webhook Trigger的介绍

公司使用的是gitlab+jenkins的CI技术栈,当前打包的操作都是由运维去点击的,这样的效率太低了,不利于持续集成。如果使用触发的方式,应该是个更好的选择,但是我们又不想所有的代码提交都会触发打包的操作,这样太浪费资源了。要达到这种有条件的触发方式,这里就要使用Generic Webhook Trigger插件了。
相对与gitlab插件的webhook,这个插件的功能更加强大,主要是可以传入大量的参数给到jenkins,有这些参数,jenkins就可以做各种各样的操作了。

2 配置

2.1 安装Generic Webhook Trigger插件

在jenkins插件管理上搜索Generic Webhook Trigger即可完成安装,如果要离线安装可以查看官方文档

2.2 配置构建触发器

在jenkins上新增一个job,在job的配置页面上的构建触发器上勾选Generic Webhook Trigger,配置如图所示:


image.png

配置token,建议和job名称一致,如果多个任务同一个token,都会被触发的。


image.png

上面一顿操作下来,我们获得一个webhook的链接,如下:

http://192.168.1.1:8080/jenkins/generic-webhook-trigger/invoke?token=pipeline-bigscreen-token

2.3 在gitlab上配置webhook

在gitlab具体的代码仓设置页面,集成菜单下新增一个webhook,填入上面的地址,然后保存,最后点击测试看下是否正常触发。


image.png

那么怎么查看gitlab发送给jenkins上的参数呢?点击webhook的编辑页面,拉大最底下就可以看到我们刚刚触发的消息,点击查看,能看到大概如下的内容:


image.png

同时,我们也看下jenkins的任务,确认下是否正常被触发了。

3 配置有条件的触发

上面的配置,只要一有提交就会触发打包操作,我们希望做下过滤,这时候就需要使用Generic Webhook Trigger插件的过滤功能的。如下所示,我希望提交的信息里面包含package字样才进行打包的操作:


image.png

至于这个POST_DATA_commits_0_message变量是怎么来的,我们在调试的时候可以printenv看下,看下哪些变量是就是我们想要的提交备注。

随后我们就可以做测试确认是否生效了。

4 更多功能

我这边希望开发触发打包之后,然后把打包的结果发送给到特定的开发人员,并且打包的jar包带上gitlab的commit id。所以这些需要如下的参数:

commit_id::POST_DATA_commits_0_id
分支名称:POST_DATA_ref
提交用户名称:POST_DATA_commits_0_author_name
提交用户邮箱地址:POST_DATA_commits_0_author_email

相关文章

网友评论

      本文标题:使用Generic Webhook Trigger插件实现触发

      本文链接:https://www.haomeiwen.com/subject/qtocortx.html