我试图在合并拉取请求时尝试触发jenkins上的构建,并尝试添加webhook,这会给我带来以下错误。
有效负载网址:http://localhost:8080/job/hook-test/
错误:"我们无法提供此有效负载:无法连接到服务器"
答案 0 :(得分:0)
webhook的网址为localhost
。 GitHub试图自己调用webhook。
您需要在可公开访问的URL中部署Jenkins。它不适用于PC中的本地Jenkins安装。
localhost
指的是当前机器的地址。当您在浏览器中键入localhost
并访问Jenkins时,这是有效的,因为您已经在PC中安装并运行了Jenkins。从其他计算机访问localhost
,您将无法访问Jenkins。当你告诉github发送webhook到localhost
它不会尝试将它发送到你的机器,相反,它会将webhook发送到运行github服务器的同一台机器,而且该机器没有詹金斯安装。
这里的问题是localhost
对你和github意味着不同的东西。
要解决此问题,您需要在可从Internet访问的公共服务器中安装Jenkins(以便github可以发送webhook)或使用提供hosted Jenkins servers的在线服务。
您也可以获取一个域并将其配置为指向您的PC。您可能需要进行一些网络配置,但一旦完成,您(和github)将能够通过some-domain.example.io
而不是localhost
访问您的jenkins。小心,你会从互联网上访问你的(我个人的)个人电脑,这有安全风险。
如果你负担得起,我建议在云中使用服务器来运行它。 许多云平台甚至提供了相当长的免费试用期(我知道亚马逊和谷歌云)。