Webhook触发Jenkins 多分支项目构建
Posted Feng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Webhook触发Jenkins 多分支项目构建相关的知识,希望对你有一定的参考价值。
总共发现了两种配置方法,分别是通过不同的插件实现
Generic Webhook Trigger
安装插件:Generic Webhook Trigger
在Jenkinsfile中,添加配置:
triggers {
GenericTrigger (
// 构建时的标题
causeString: \'Triggered by $ref\',
// 获取POST参数中的变量,key指的是变量名,通过$ref来访问对应的值,value指的是JSON匹配值(参考Jmeter的JSON提取器)
// ref指的是推送的分支,格式如:refs/heads/master
genericVariables: [[key: \'ref\', value: \'$.ref\']],
// 打印获取的变量的key-value,此处会打印如:ref=refs/heads/master
printContributedVariables: true,
// 打印POST传递的参数
printPostContent: true,
// regexpFilterExpression与regexpFilterExpression成对使用
// 当两者相等时,会触发对应分支的构建
regexpFilterExpression: \'^refs/heads/(master|production)$\',
regexpFilterText: \'$ref\',
// 与webhook中配置的token参数值一致
token: \'mytoken\'
)
}
如:
在gitee中配置webhook,在Url中填入:
https://your_IP/generic-webhook-trigger/invoke?token=mytoken
如:
提交代码后,gitee会触发jenkins的多分支流水线项目扫描分支。当$ref
的值符合正则表达式^refs/heads/(master|production)$
,会触发项目的构建。
注意:当你首次在Jenkinsfile配置triggers后,提交git仓库后不会自动触发构建。原因是:配置触发构建的jenkinsfile未拉取到jenkins项目中。
其他更详细的用法,请参考:https://gitbook.curiouser.top/origin/jenkins-generic-webhook-trigger插件.html
Multibranch Scan Webhook Trigger
总结
Generic Webhook Trigger的配置更灵活,但不太符合常识
Multibranch Scan Webhook Trigger虽然功能简单,但更人性化
以上是关于Webhook触发Jenkins 多分支项目构建的主要内容,如果未能解决你的问题,请参考以下文章
如何让通用 Webhook 触发器插件与 Jenkins 中的多分支管道一起使用?
jenkins系列3-gitlab webhook,jenkins自动构建
jenkins系列3-gitlab webhook,jenkins自动构建