Jenkins-将更改推送到GitHub选项时构建不起作用

时间:2015-06-01 15:02:57

标签: git github jenkins jenkins-plugins jenkins-cli

Jenkins正在运行localhost。 我在GitHub中有我的存储库。我可以选择在将更改推送到GitHub时进行构建。检查。

当我点击“立即构建”时,构建成功完成,没有任何问题。但是当我将代码提交到我的存储库时,不会发生自动构建。我可以从我的系统访问GitHub,因为存储库是公共的,我相信甚至Jenkins也应该能够检测到它。我知道有一个轮询选项,但我希望Jenkins在存储库中检测到更改时进行构建(因为这是我们一直试图实现的)。

配置:

Jenkins 1.615

Git插件2.3.5

Git客户端插件1.17.1

--------------------------------------------

编辑:" 将更改推送到GitHub后构建"选项已重命名为" 用于GITScm轮询的GitHub挂钩触发器"在最新版本的GitHub插件中。 (感谢@ smrubin的反馈。)

4 个答案:

答案 0 :(得分:69)

我怀疑你错过了webhook url

除了检查Build when a change is pushed to GitHub选项之外,您还应该将webhook网址添加到您的Github存储库中以使自动触发机制起作用,具体方法如下:

转到Github存储库:

  

设置 - >网络挂接和放大器;服务 - >服务 - >添加服务 - >选择" Jenkins(GitHub插件)"

然后用您的jenkins网址填写Jenkins hook url,如下所示: http://your_jenkins_url/github-webhook/ enter image description here

并且,非常重要,因为您在本地主机中安装了jenkins服务器,请注意您不应该填写Jenkins挂钩网址上面的内容http://localhost:8080/github-webhook/因为Github无法识别localhost127.0.0.1192.168.*.*

您应该使用外部可访问的DNS名称或IP地址,Github可以识别这些名称。

答案 1 :(得分:30)

我有同样的问题并解决了它。问题是网址必须以/结尾。含义:

http://<jenkinsurl>:8080/github-webhook/工作。

http://<jenkinsurl>:8080/github-webhook没有。 (注意最后丢失的/。)

答案 2 :(得分:2)

实际上,如果你从Jenkins -> Github plugin configuration(如上所述)进行webhook设置,你仍会看到在github中创建了webhooks。所以,上面两种方法基本上做同样的事情。

我个人喜欢从Github创建webhook,因为这样你就不必在jenkins中共享或存储github用户信息。

步骤:

  1. 登录Github(使用管理员)

  2. 转到要与jenkins挂钩的存储库

  3. 点击设置标签 - &gt; webhooks&amp;服务
  4. 点击Add Webhook。
  5. 输入有效负载网址:如:http://:8080 / github-webhook /
  6. 选择内容类型为json。
  7. 你已经完成了。
  8. 现在您进行更改并提交,您将看到jenkins自动构建获取触发器。不要忘记在jenkins作业中进行设置,以便在github中推送代码时启动构建。

答案 3 :(得分:1)

GitHub插件(https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin)提到了两种方式:手动模式和自动模式。 mainframer给出了手动模式的答案。今天我找到了新的东西。 mainframer添加到服务中并不允许我添加多个Jenkins的实例,因此我添加了其他添加Webhook,如下所示。它也可以正常工作。

我想在这里添加一张图片,但我的ID没有权利这样做。