如何配置Cloudbees Jenkins以触发对Github的推送构建

时间:2013-03-15 10:05:17

标签: github jenkins cloudbees

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

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

但我有两个问题:

  1. 不起作用。当我向github推送时,jenkins方面没有任何事情发生。在Jenkins上,GitHub Hook日志说'轮询还没有运行。'

  2. 可能的原因是我无法指定git存储库,如下图所示:

  3. enter image description here

    公钥没有文本字段,也没有其他字段。相反,我有字段

    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的所有内容都安装在最新版本

2 个答案:

答案 0 :(得分:3)

基于上面的Git错误消息,我假设您无法进行身份验证。您是否按照here所描述的那样在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中得到了所有的东西。

答案 1 :(得分:0)

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

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

相关问题