18

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

  • 詹金斯诉 1.463
  • github-api 1.23
  • 詹金斯 GIT 插件 1.1.18
  • GitHub 插件 1.2

轮询单片机工作。这一点很重要,因为我想让你知道我的其他与 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 的情况下实现这一点的分步指南。

4

2 回答 2

24

我遇到了类似的问题,在查看了主要的 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 > 配置系统 > 防止跨站点请求伪造攻击。该复选框位于第一个配置部分的底部。在那之后,一切似乎都很顺利。

于 2013-02-16T01:43:17.910 回答
2

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

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

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

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

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

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

于 2012-05-21T19:41:24.983 回答