WebHooks 有什么用?
webhooks 可以在 Jenkins 任务关联仓库发生更新时,自动执行构建任务。
安装插件
在 Jenkins
插件管理搜索安装插件 Generic Webhook Trigger
安装之后重启 Jenkins,直接访问 http://localhost:8090/restart 可以快速重启 (Jenkins 所在本地地址)
在项目构建中配置
找到需要配置 webhook 构建的任务,在【构建触发器中】勾选 Generic Webhook Trigger
最简单的配置到这里已经完成了,如果想要添加 token 或其它参数可以自行配置
添加 TOKEN
(这一步是可选的),输入自定义的 TOKEN
需要注意插件提供的 invoke 地址,这个是在下面 git 仓库中配置中会用到的。
关于 invoke 地址
invoke 地址是需要配置到 git 的 webhook 中的,这样在远程仓库发生变化时,Git 就会通过这个地址来触发 Jenkins 任务的执行。显然这个地址中包含了 JENKINS_URL 这个变量,就是当前 Jenkins 所运行的地址,如果我们在本地运行,那该地址应该就是 http://localhost:8080
。显然 Gitee 或 Github 肯定是不能直接访问我们的本地环境来触发 Jenkins 任务的,那就需要工具把我们的本地 Jenkins 地址映射到公网上。
如果你的 Jenkins 是安装在服务器上,且你的服务器有公网 IP 的话,就不需要映射
通过 ngrok 将本地地址映射到公网
安装 ngrok 之后需要注册账号,注册完成之后会生成 authtoken, 执行以下命令添加即可
ngrok config add-authtoken <your-authtoken>
# 执行该命令会生成 ngrok.yml 配置文件
本地端口映射
ngrok http 8090
将 Forwarding 的地址配置到 Jenkins 中
在 Git 仓库中配置
此处以
Gitee
为例
进入 Jenkins
中该任务对应的远程仓库,选择【管理 ==> WebHooks】,将 Jenkins
中生成的 invoke
地址复制到 URL
中 (注意拼上 ?token=XXX
,如果在 Jenkins
中设置了 TOKEN
的话)。
选择触发 Jenkins
构建任务的事件并保存,如果勾选了激活则会在保存该配置时立即出发一次。
密码可以不用输