我的 Jenkins 持续集成服务器在 Ubuntu 主机上运行,配置如下:
- Jenkins 诉 1.463
- github-api 1.23
- Jenkins GIT 插件 1.1.18
- GitHub 插件 1.2
轮询 SCM 有效。这很重要,因为我想让你知道我的其他 jenkins 相关配置运行良好,除了这个构建后触发废话。
我想配置 Jenkins,以便在将更改推送到私有(private) github 存储库 中的开发分支时,这将触发包含最新更改的构建。
repo 在我作为所有者的个人 github 帐户下。让我们称这个所有者
我包括另一个 github.com 帐户作为合作者。我们称此为合作者
我这样做的原因是万一我不再参与该项目,其他人可以继续进行维护。
ubuntu 中 jenkins 用户的 SSH key 存储在 collaborator 下
我查阅了以下链接:
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 添加到 knownhosts 以供 jenkins ubuntu 用户使用。 我已经添加了 github webhook。
我已经尝试在 jenkins 中手动和自动设置 github webhook。
没有任何作用。
我需要一个关于如何在不轮询 github 的情况下实现这一目标的分步指南。
最佳答案
我遇到了类似的问题,在查看主要的 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 保护 - Manage Jenkins > Configure System > Prevent Cross Site Request Forgery exploits。该复选框位于第一个配置部分的底部。之后一切似乎都很顺利。
关于git - 推送到私有(private) github 存储库时如何触发 Jenkins 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10633827/