【问题标题】:How to trigger a Jenkins build when a push is made to a private github repository推送到私有 github 存储库时如何触发 Jenkins 构建
【发布时间】:2012-05-24 22:02:06
【问题描述】:

我的 Jenkins 持续集成服务器在 Ubuntu 主机上运行,​​配置如下:

  • Jenkins v 1.463
  • github-api 1.23
  • Jenkins GIT 插件 1.1.18
  • GitHub 插件 1.2

轮询 SCM 有效。这很重要,因为我想让您知道我的其他与 jenkins 相关的配置运行良好,除了此构建后触发废话。

我想配置 Jenkins,以便在将更改推送到 私有 github 存储库中的开发分支时,这将触发包含最新更改的构建。

repo 在我的个人 github 帐户下作为所有者。我们称其为所有者

我将另一个 github.com 帐户添加为合作者。我们称其为合作者

我这样做的原因是,如果我不再参与该项目,其他人可以继续进行维护。

在 ubuntu 中 jenkins 用户的 SSH 密钥存储在 collaborator

我查阅了以下链接:

http://nepalonrails.tumblr.com/post/14217655627/set-up-jenkins-ci-on-ubuntu-for-painless-rails3-app-ci

https://issues.jenkins-ci.org/browse/JENKINS-10391

https://wiki.jenkins-ci.org/display/JENKINS/Github+Plugin

http://kohsuke.org/2011/12/01/polling-must-die-triggering-jenkins-builds-from-a-git-hook/

https://wiki.jenkins-ci.org/display/JENKINS/Logging

http://blog.cloudbees.com/2012/01/better-integration-between-jenkins-and.html

没有一个不起作用。有些看起来有点过时甚至矛盾。

我已将 github.com 添加到 jenkins ubuntu 用户的 knownhosts。 我已经添加了 github webhook。

我已经尝试在 jenkins 中手动和自动设置 github webhook。

没有任何作用。

我需要一份关于如何在不轮询 github 的情况下实现此目的的分步指南。

【问题讨论】:

  • 我在 jenkins cl.ly/Gy15 中配置了以下记录器,底部 2 记录器中没有显示任何内容

标签: git plugins github build-process jenkins


【解决方案1】:

我遇到了类似的问题,在查看了主 Jenkins 系统日志后,我看到了以下内容:

Feb 15, 2013 8:35:44 PM hudson.security.csrf.CrumbFilter doFilter
WARNING: No valid crumb was included in request for /github-webhook/.  Returning 403.

解决方案是关闭 CSRF 保护 - 管理 Jenkins > 配置系统 > 防止跨站点请求伪造攻击。该复选框位于第一个配置部分的底部。在那之后,一切似乎都很顺利。

【讨论】:

  • 在 cloudbees.com 上的 jenkins 上,没有出现防止跨站点请求伪造攻击!是否有另一种方法可以禁用 CSRF。例如使用 Jenkins CLI?
  • 设置已移至页面最底部的Manage Jenkins > Configure Global Security > Prevent Cross Site Request Forgery exploits。使用 Jenkins 版本 1.572
  • 如果它可以帮助任何人,这个解决方案也适用于同样的错误,但/bitbucket-hook
【解决方案2】:

/log url 下为com.cloudbees.jenkins 类别创建一个具有跟踪级别日志记录的记录器(管理 Jenkins-> 系统日志)。

验证存储库管理屏幕的 Service Hooks 部分下是否有 Webhook URL 条目。

单击测试挂钩,您应该会在新创建的记录器下看到一些日志活动。

最后,检查您已配置为由 GitHub 推送触发的构建的 GitHub Polling 日志操作。

一个常见的错误是在没有更改的情况下测试这样的提交钩子

该钩子仅用于提示轮询,除非检测到更改,否则不会执行构建。

【讨论】:

  • 我听从了你的建议。我添加到 webhook url。当我按下测试挂钩时,什么也没发生。我添加到詹金斯挂钩网址并按测试挂钩。在 github.com 网站上发送了一个有效负载。当我检查记录器时,什么也没发生。运行此测试时是否需要关闭 SCM 轮询?
  • 能否提供截图?
猜你喜欢
  • 1970-01-01
  • 2014-08-15
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 2018-05-02
相关资源
最近更新 更多