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

Jenkins-Build when a change is pushed to GitHub option is not working

Jenkins 在本地主机上 运行。 我在 GitHub 中有我的存储库。我可以选择 'Build when a change is pushed to GitHub' 检查。

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

配置:

詹金斯 1.615

Git 插件 2.3.5

Git 客户端插件 1.17.1

——————————————————————————————————————————

EDIT:“将更改推送到 GitHub 时构建”选项已重命名为“GitGITScm 轮询的 Hub 挂钩触发器”在最新版本的 GitHub 插件中。 (感谢@smrubin 的反馈。)

我怀疑你错过了 webhook url

除了检查 Build when a change is pushed to GitHub 选项外,您还应该将 webhook url 添加到您的 Github 存储库中以获得 自动触发 机制工作,方法如下:

转到您的 Github 存储库:

Settings--> Webhooks&Services-->Service--> Add Services--> Choose "Jenkins (GitHub plugin)"

然后用你的 jenkins url 填写 Jenkins hook url 像这样: http://your_jenkins_url/github-webhook/


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

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

GitHub插件(https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin)提到了两种方式:手动模式和自动模式。大型机给出了手动模式的答案。今天我发现了一些新东西。大型机添加到服务不允许我添加多个 Jenkins 的实例,所以我添加其他人添加 Webhook,如下所示。它也很好用。

我想在这里放一张照片,但我的 id 没有权限。

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

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

步骤:

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

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

  3. 单击设置选项卡 -> Webhooks 和服务
  4. 单击“添加 Webhook”。
  5. 输入负载 url : 喜欢 : http://:8080/github-webhook/
  6. Select 内容类型为 json.
  7. 你完成了。

现在您进行更改并提交,您将看到 jenkins build get 自动触发。不要忘记在 jenkins jobs 中进行设置,以便在 github.

中推送代码时开始构建

我遇到了同样的问题并解决了。问题是 URL 必须以 / 结尾。含义:

http://<jenkinsurl>:8080/github-webhook/

http://<jenkinsurl>:8080/github-webhook

(注意最后缺少的 /。)