2015-11-03 81 views
3
  • 我已经在我的电脑上设置了Jenkins的本地实例,我可以通过 访问它 - “http://localhost:8080”。
  • 创建一个公共Git存储库,并在那里添加了我的ASP.NET MVC 项目。
  • 还配置了Jenkins来构建项目,并且它非常好地完成了作业 。

但是,这是一个手动触发器。我的意思是,只有当用户点击Jenkins控制台中的“Build Now”时,才会触发构建。Github + Jenkins >>如何触发代码库中的“提交和推送”构建?

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

我提到了很多博客和文章,并且了解了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

这是因为Github服务器将无法到达本地托管的Jenkins服务器来触发构建。

您将需要static IP address或者您需要将DNS条目映射到您的动态IP。另外,您需要打开端口8080以进行外部访问。只有当GitHub能够通过它的webhook到达你的本地实例。

希望它能帮助:)在Gi​​thub上你的仓库设置

+0

参考步骤#8文章>> http://www.frictionlesscode.com/have- 30分钟的持续集成/在这里,作者在配置post-receive git钩子时只使用localhost(没有IP地址)。我相信这应该在本地主机上工作 - 因为,git钩在localhost非常容易访问的本地计算机上。你认为这仍然是因为本地主机? – Nirman

+1

对于将来的读者,上面的评论中链接的文章@Nirman描述了在PC上运行Jenkins,配置了一个配置了post commit hook的本地git存储库 - 因此文章作者不需要外部可访问的IP地址 - 他不'使用GitHub。 –

+0

@marfarma:你是对的,在OP的情况下,因为他使用Github,他需要让jenkins托管在公共IP上。 – Arpit

0

我认为你应该使用“网络挂接&服务”。请看下面的图片:jenkins + github

要实现它,你必须有一个公共领域为您詹金斯

相关问题