jenkins配置webhook,当仓库有推送时自动构建

系列文章

jenkins的自动化配置
jenkins的tty问题
jenkins的反向代理配置
jenkins的java11问题
jenkins的私钥格式错误问题
jenkins的webhooks配置
jenkins设置任务超时⏱(多种方法:图文并茂🖼)

参考

在使用webhook之前,我们需要在jenkins中安装对应的插件

dashboard->插件管理中搜索Generic Webhook Trigger并安装

创建token

接口需要一些认证信息,所以我们要为项目所属的用户创建一个token

dashboard->用户列表中选择你的项目所对应的用户,在用户名列表最右侧有位于字段提示您该用户所包含的项目

点击该用户名,随后在新的页面点击设置

此时您会看到API Token选型,只需要点击添加新的Token即可获得一个token,将这个token复制一下,您很快就会用到它。

配置

在你需要管理的构建项目中勾选Generic Webhook Trigger

接下来您可以什么也不配置就直接使用Webhook

配置仓库的webhook

在您的仓库中选择webhook选项,按如下格式填入信息即可

1
http://<您的jenkins访问路径>/generic-webhook-trigger/invoke?token=<您刚刚复制的token>

或者您可以使用另一种格式

1
http://<您jenkins的用户名>:<您刚刚复制的token>@<您的jenkins访问路径>/generic-webhook-trigger/invoke

测试自动构建

当一切顺利时,您应该能发送测试请求,并在jenkins中看到已经开始的构建流程

为了减少将来可能存在的麻烦,我们可能需要进行如下配置

优化配置

如果您有多个项目部署,则要区分push的是哪个仓库,否则勾选的generic webhook trigger的Jenkins项目都会触发构建

ref指的仓库发送给Jenkins的分支名字,使用后续的配置中的ref区分分支

按照下图所示输入内容即可

1
2
ref
$.ref

project.git_ssh_url指的是项目路径,使用该配置来区分不同的项目

按照下图所示输入内容即可

1
2
project.git_ssh_url
$.project.git_ssh_url

最后补充如下配置

1
2
^(refs/heads/master)_(git@gitee.com:oschina/git-osc.git)$ # 这里注意把git@gitee.com:oschina/git-osc.git换成您的仓库地址
$ref_$project.git_ssh_url

如果您在webhook中开启了tag约束,您可能需要调整refs相关配置