Generic Webhook Trigger插件
Generic Webhook Trigger 是一款通用触发器。可以接收任何HTTP请求,从JSON或XML中提取任何值,并使用这些值作为变量触发作业。可以与GitHub、GitLab、Bitbucket、Jira以及更多应用程序一起使用。
这里演示与 gitlab 集成
下载 Generic Webhook Trigger 插件

截图是已经安装好了。如果是没有安装过的话,在可选插件搜索安装。
使用 Generic Webhook Trigger 插件
-
配置job,找到构建触发器

-
gitlab 配置的构建触发钩子,注意修改Jenkins访问协议(http/https)

-
添加
Post content parameters配置,只需要添加两个值,其他都不需要填写。这个是匹配 gitlab 触发构建的分支版本

这个是匹配 gitlab 触发构建的项目名称

这个是匹配 gitlab 触发构建的用户名

-
设置 gitlab 触发 Jenkins 的 token 参数

-
对 post 匹配到的变量进行判断是否触发该 job 任务运行。注意截图上没有下划线,是因为显示问题,实际上有
_的。

gitlab 打开出站请求流量,需要管理员权限设置



gitlab配置项目触发钩子

格式:http[s]😕/JENKINS_URL/[子路径/]generic-webhook-trigger/invoke[?token=Jenkins job配置的token值]


测试验证

返回 200 状态码,则正常触发构建

Jenkins查看

jenkinsfile文件
注意:triggers配置必须在 Jenkins 手工构建一次后,gitlab通过钩子才能触发构建。否则该项目收不到构建请求滴。
pipeline {
// 该任务运行在哪个Jenkins节点上
agent any
// 构建触发器
triggers {
GenericTrigger (
// 构建原因
causeString: '${Username} submitted the ${Branch} branch of the ${Project_name} project',
// 设置变量
genericVariables: [
// key => 变量名
// value => gitlab请求过来的请求参数
// value查看gitlab请求过来的JSON内容,注意不能省略 . 号
[defaultValue: '', key: 'Branch', regexpFilter: '', value: '$.ref'],
[defaultValue: '', key: 'Project_name', regexpFilter: '', value: '$.project.name'],
[defaultValue: '', key: 'Username', regexpFilter: '', value: '$.user_name']
],
// 匹配上述设置的变量,支持正则表达式
// 如果设置多个参数的话,请用 _ 号分割。
// 格式:^(待匹配内容值1)_(待匹配内容值2)_(待匹配内容值3)$
regexpFilterExpression: '^(refs/heads/.*)_(demo-golang)$',
regexpFilterText: '$Branch_$Project_name',
// token密钥
token: '123456',
)
}
stages {
stage('pre_exec') {
steps {
echo "hello world!"
}
}
}
}
查看gitlab请求Jenkins详细参数
-
gitlab打开项目
设置 - webhooks拉到最下面,找到对应的webhooks - 编辑

-
拉到最下面,
最近事件 - 查看详细信息。
这个没有最近事件,需要发一下测试的请求给Jenkins。截图上有
测试按钮,但是没有框框出来。

- 所有的gitlab请求参数


浙公网安备 33010602011771号