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

Github + Jenkins >> How to trigger build on "Commit and Push" in code repository?

但是,这是一个手动触发器。我的意思是,仅当用户在 Jenkins 控制台中单击 "Build Now" 时才会触发构建。

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

我参考了很多博客和帖子,开始了解 Git 钩子。我还尝试创建 "post-receive" 挂钩。我在源代码映射的位置创建了一个钩子(例如,"E:\Git\test-jenkins.git\hooks")。

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

但这不起作用。构建永远不会在 "Commit and Push" 上触发。当我尝试直接在浏览器中复制 URL 时,它会触发构建,因此我相信 URL 没有问题。但是脚本本身并没有被执行。

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

非常感谢任何帮助。

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

您需要一个 static IP address 或者您需要将一个 DNS 条目映射到您的动态 IP。另外,您需要打开端口 8080 以供外部访问。只有这样 GitHub 才能使用其 webhook 访问您的本地实例。

希望对您有所帮助:)

我认为您应该在 Github 的存储库设置中使用 "webhook & services"。请看下图:

要实现它,您的 Jenkins

必须有一个 public 域