Github + Jenkins>>如何触发代码库中“Commit and Push”的构建?

时间:2015-11-03 05:16:04

标签: git github jenkins jenkins-plugins githooks

  • 我在计算机上设置了Jenkins的本地实例,我可以 访问它 - “http://localhost:8080”。
  • 创建了一个Public Git存储库,并添加了我的ASP.NET MVC 在那里投射。
  • 还配置Jenkins来构建项目,它完成了这项工作 非常好。

但是,这是一个手动触发器。我的意思是,只有当用户点击Jenkins控制台中的“Build Now”时才会触发构建。

实际上,我的要求是在提交和推送更改时触发构建。 (这意味着,在签入更改时“提交并推送”)。

我提到了很多博客和帖子,并了解了Git钩子。我也试过创建“post-receive”钩子。我在源代码映射的位置创建了一个钩子(例如,“E:\ Git \ test-jenkins.git \ hooks”)。

#!/bin/bash
curl POST "http://localhost:8080/job/Test-Jenkins/build" --data delay=0sec

但这不起作用。 “提交和推送”永远不会触发构建。当我尝试直接在浏览器中复制URL时,它会触发构建,所以我相信URL没有问题。但是脚本本身并没有被执行。

有人可以建议如何解决这个问题吗?

对此的任何帮助都非常感激。

2 个答案:

答案 0 :(得分:2)

这是因为Github服务器无法访问本地托管的Jenkins服务器,无法触发构建。

您需要static IP address或者需要将DNS条目映射到动态IP。此外,您需要打开端口8080以进行外部访问。只有这样GitHub才能通过其webhook访问您的本地实例。

希望有所帮助:)

答案 1 :(得分:0)

我认为你应该使用" webhook&服务"在Github的存储库设置中。请参阅下图:jenkins + github

要实现它,您必须拥有Jenkins的公共域