我的Jenkins Continuous Integration Server正在Ubuntu主机上运行,配置如下:
轮询SCM有效。这很重要,因为我想让你知道我的其他jenkins相关配置运行良好,除了这个帖子构建触发器无意义。
我想配置Jenkins,以便在将更改推送到私有github存储库中的开发分支时,这将触发包含最新更改的构建。
回购是作为所有者在我的个人github帐户下。我们称之为所有者
我包括另一个github.com帐户作为合作者。我们称之为协作者
我这样做的原因是因为如果我不再参与该项目,其他人可以继续进行维护。
ubuntu中jenkins用户的SSH密钥存储在协作者
下我咨询过以下链接:
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的情况下实现这一目标。
答案 0 :(得分: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>配置系统>防止跨站点请求伪造攻击。该复选框位于第一个配置部分的底部。之后,这一切似乎都很愉快。
答案 1 :(得分:2)
创建一个记录器,其中包含com.cloudbees.jenkins
网址下的/log
类别的跟踪级别记录(管理Jenkins->系统日志)。
验证存储库管理屏幕的 Service Hooks 部分下是否有 Webhook URL 条目。
单击测试挂钩,您会在新创建的记录器下看到一些日志活动。
最后,检查已配置为由GitHub推送触发的构建的 GitHub轮询日志操作。
一个常见的错误是在没有更改的情况下测试像此的提交挂钩。
该钩子仅用于提示轮询,除非检测到更改,否则不会执行构建。