2

我尝试按照本文中的说明进行操作:

http://developer.cloudbees.com/bin/view/DEV/GitHub+Commit+Hooks+HOWTO

但是我有两个问题:

  1. 它不起作用。当我推送到 github 时,詹金斯方面没有任何反应。在 Jenkins 上,GitHub Hook 日志显示“轮询尚未运行”。

  2. 造成这种情况的可能原因是我无法指定 git 存储库,如此图片中所述:

在此处输入图像描述

没有用于公钥的文本字段,也没有其他字段。相反,我有这些领域

Repository URL, Name, Refspec

我也可以指定一个 http url(以及除触发之外的所有内容)。但是,如果我在图像中指定 git/ssh url,则会收到以下错误:

无法连接到存储库:命令“git ls-remote -h git@github.com:schauder/degraph.git HEAD”返回状态码 128:stdout:stderr:警告:永久添加 'github.com,207.97.227.239'( RSA) 到已知主机列表。权限被拒绝(公钥)。致命:无法从远程存储库中读取。

请确保您具有正确的访问权限并且存储库存在。

我从 github 复制了 url,所以不太可能出现拼写错误。

我确认我已经安装了 github 插件(升级到 1.5 版)

任何提示如何解决或至少调试问题?

更新评论中的回答问题:

是的,我在作业配置中选中了“将更改推送到 GitHub 时构建”复选框。

是的,我在 GitHub 中设置了 webhook。当我单击那里的测试按钮时,没有任何反应。当我将 webhook 中的 url 放入浏览器时,我得到一个 http 500 说

不打算以交互方式浏览(必须指定有效负载参数)

加上一些冗长的堆栈跟踪。

另一个更新

我检查了 Jenkins 端安装的 GIT 相关插件。在文本中显示他们与 GIT 的所有内容都已安装并且是最新版本

4

2 回答 2

3

根据上面的 Git 错误消息,我假设您无法通过身份验证。您是否按照此处所述在 GitHub 上添加了 CloudBees 公共 SSH 密钥?

OP的澄清

问题中引用的图像似乎表明有人将 GitHub 中的公钥放入 CloudBees。但实际上情况正好相反,而且所有标签似乎都已更改,因此很难将该屏幕截图与您在 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 中得到了各种各样的东西。

于 2013-03-15T12:58:42.593 回答
0

我刚刚发布了一篇关于使用 CloudBees 对托管在 GitHub 上的 Play 应用程序进行持续集成的教程。这旨在提供一个全面的指南:

http://ics-software-engineering.github.io/play-example-continuous-integration/

于 2013-07-08T22:09:47.677 回答