我尝试按照本文中的说明操作:
http://developer.cloudbees.com/bin/view/DEV/GitHub+Commit+Hooks+HOWTO
但我有两个问题:
不起作用。当我向github推送时,jenkins方面没有任何事情发生。在Jenkins上,GitHub Hook日志说'轮询还没有运行。'
可能的原因是我无法指定git存储库,如下图所示:
公钥没有文本字段,也没有其他字段。相反,我有字段
Repository URL, Name, Refspec
此外,我可以指定一个http网址(除了触发工作之外的所有内容)。但是如果我在图像中指定git / ssh url,我会收到以下错误:
无法连接到存储库:命令“git ls-remote -h git@github.com:schauder/degraph.git HEAD“返回状态码128: stdout:stderr:警告:永久添加 'github.com,207.97.227.239'(RSA)到已知主机列表。 权限被拒绝(publickey)。致命:无法从远程读取 库中。
请确保您拥有正确的访问权限和存储库 存在。
我从github复制了网址,所以输入错误的可能性不大。
我确认我安装了github插件(升级到1.5版)
任何提示如何修复或至少调试问题?
更新评论中的回答问题:
是我在作业配置中选中了“将更改推送到GitHub时”的复选框。
是的我在GitHub中设置了webhook。当我点击那里的测试按钮时,没有任何反应。当我将webhook中的url放入浏览器时,我得到一个http 500说
不打算以交互方式浏览(必须指定有效负载参数)
加上一些冗长的堆栈跟踪。
另一次更新
我检查了Jenkins方面安装的GIT相关插件。在文本中显示GIT的所有内容都安装在最新版本
答案 0 :(得分:3)
基于上面的Git错误消息,我假设您无法进行身份验证。您是否按照here所描述的那样在GitHub上添加了CloudBees公共SSH密钥?
OP澄清
问题中引用的图像似乎表明将GitHub中的公钥放入CloudBees。但实际上它是反过来的,并且所有标签似乎都被更改了,因此将截图与您在CloudBees中看到的截图相匹配是很困难的。
所以我做的是:
有一个公钥(由CloudBee生成)。我在CloudBees DEV@cloud Authorization
部分,标记为CloudBees Public Key
。复制该密钥。
跳到GitHub并转到Settings > Deploy Keys
。在那里添加密钥。
转到Settings > Service Hooks > WebHook URLs
。单击测试按钮。你不会在GitHub上看到太多。
回到CloudBees Jenkins。从作业的主页转到'GitHub Hook Log'。在那里你应该看到类似的东西:
Started on Mar 15, 2013 8:55:14 AM
Using strategy: Default
[poll] Last Built Revision: Revision 581acde89a62317fd8dabaa3f4c6025d1c9dd413 (origin/master)
Fetching changes from the remote Git repositories
Polling for changes in
Done. Took 0.34 sec
Changes found
你的工作应该开始了。
如果最后一行显示No Changes
这意味着挂钩工作,但您已经构建了当前版本,因此不会再次触发构建。
如果您仍有问题,请在“故障排除”下查看https://wiki.jenkins-ci.org/display/JENKINS/Github+Plugin#GitHubPlugin-TriggerabuildwhenachangeispushedtoGitHub,它会告诉您如何设置登录jenkins方面。有了这个,我在Jenkins SystemLog中得到了所有的东西。
答案 1 :(得分:0)
我刚刚发布了一个关于使用CloudBees在GitHub上托管的Play应用程序的持续集成的教程。这旨在提供全面的指南:
http://ics-software-engineering.github.io/play-example-continuous-integration/