我们在防火墙后面运行Jenkins,使用sme客户端提供必要的代理来公开github.com。然而,在我们的Jenkins[版本2.361.4-jdk11]配置页面中,Github插件断然拒绝保存Override Webhook URLhttps://smee.io/blah
(其中blah
是我们的SMEE通道),相反,当Apply
被按下时,它说(橙色):
"看起来https://smee.io/blah
不像在和Jenkins说话。你在运行自己的应用程序吗?">
我们可以看到,在Jenkins配置页面上按下Apply
的那一刻,SMEE服务器接收到一个事件,其有效负载形式为:
"1668551517454":{
}
…同时,SMEE客户端的journald
日志输出(与Jenkins运行在同一台机器上,每个都在自己的Docker容器中)显示它已经成功地发送回正确的[默认]端口:
POST http://10.10.1.29:8080/github-webhook/ - 200
…10.10.1.29
是运行sme客户端和Jenkins的机器的地址。因此,从Jenkins到SMEE服务器、SMEE服务器到SMEE客户端以及SMEE客户端到Jenkins的连接似乎都是正常的。
什么可以扰乱Github插件和/或Jenkins?是否有一些更详细的日志记录,我们可以从詹金斯,或插件,以确定是什么扰乱了它(詹金斯的journald
日志输出说没有比INFO h.p.b.g. GlobalTimeOutConfiguration#configure: global timeout has been cleared
更有趣的在这个时候)?
如果重要的话,SMEE客户端使用:
docker run --name smee-client --restart=on-failure --detach --log-driver=journald deltaprojects/smee-client -u https://smee.io/blah -t http://10.10.1.29:8080/github-webhook/
…并且Jenkins Docker的安装是根据Jenkins的说明构建/运行的。
答案是…Jenkins Github插件的GUI坏了,它永远不会保存你在Override Hook URL框中输入的内容。它自2020年9月以来一直被打破。如果你有一个Jenkins Jira帐户,你可以看到痛苦。
解决方法是手动编辑Jenkinsgithub-plugin-configuration.xml
配置文件,以添加以下表单的字段:
<hookUrl>https://smee.io/thestringfromsmee</hookUrl>
…[本例为我的情况,在<github-plugin-configuration>
中使用SMEE],与<configs>
和<hookSecretConfigs>
处于同一级别,然后重启Jenkins。
Ho的嗡嗡声。