问题描述
通过 Webhook 能够自动触发 Jenkins 构建。例如:
1)用户向 Gitlab(Gitee)提交代码,然后 Gitlab 会调用 Jenkins URL 来触发构建动作。
该笔记将记录:Webhook 相关内容,比如 自动触发构建、口令设置问题 等等,以及常见问题的解决方案。
解决方案
Secret Token
在Gitlab中配置Webhook时,需要设置口令。之后,在Gitlab通知Jenkins时,要传入口令以对身份认证。
麻烦的地方是有时候需要配置口令,有时候不需要配置口令。本文将整理何时需要配置口令,何时无需配置口令。
GitLab
Gitlab + Jenkins Multibranch Pipeline => 无需在Gitlab中配置口令
Gitlab + Jenkins Freestyle project => 需要在Gitlab中正确配置口令
# 03/19/2022 Gitlab Hook 由于依赖 ruby-runtime 插件,而 ruby-runtime 无法支持更高 JDK 版本而被废弃。
Deprecating non-Java plugins
Gitee
Gitee + Jenkins Freestyle project => 需要在Gitee中正确配置口令
Gitlab + Jenkins Multibranch Pipeline => 无需在Gitlab中配置口令
Gogs
Gogs 是 Gitlab 的替代品,轻量级的 Git 仓库服务。Gogs 同样支持 Webhook 功能(即在仓库发生变更时,通知 Jenkins 构建)。
1)在 Jenkins 中,安装 Gogs 插件;
2)在 Jenkins 中,配置 Gogs Webhook / Use Gogs secret 密钥;
3)在 Gogs 中,添加 Webhook 配置,地址 http(s)://<jenkins-server>/gogs-webhook/?job=<jobname> 格式,并指定密钥即可;
4)在 Gogs 中,点击 Test Delivery 测试;