【问题标题】:GitHub Organization Repo + Jenkins (GitHub Plugin) integrationGitHub 组织回购 + Jenkins(GitHub 插件)集成
【发布时间】:2012-05-28 14:16:19
【问题描述】:

我在 GitHub 上有一个拥有私有存储库的组织。我还设置了 Jenkins 在服务器上的 8080 端口上运行,并安装了 GitHub 插件。我在 GitHub 上为我的 jenkins 用户创建了一个帐户,该帐户位于所有者组中。

当更改被推送到我的开发分支(或主分支,似乎都没有工作)时,我试图在 jenkins 上触发工作。

当我查看 Jenkins 中的 GitHub Hook Logs 时,它说 Polling 尚未运行。当我转到“管理 Jenkins”时,GitHub 插件说我的帐户在我测试时已验证。

关于如何配置它的任何见解?我有多个想要使用的存储库,因此部署密钥对我来说似乎不是解决方案。

【问题讨论】:

    标签: github continuous-integration hudson jenkins jenkins-plugins


    【解决方案1】:

    更新:

    正如his answer中提到的Craig Ringer,您可以在GitHub插件设置下的“配置Jenkins”中选择Grant READ permissions for /github-webhook,允许无需身份验证即可调用webhook。

    另一个更新:Webhooks are now (Dec. 2014) available for organization:见WebHooks API for orgs


    注意:hudson-github-pluginissue 4 大约是:

    Last GitHub Push
    
    Polling has not run yet.
    

    结论是:

    没关系,唯一缺少的部分是 github 用户的权限复选框,该复选框在 Internet 上的任何地方都没有记录。

    那么这是关于您的 Jenkins 用户的权限问题吗?

    文章“Set up Jenkins-CI on Ubuntu for painless Rails3 app CI testing”包括以下流程:

    要限制 CI 系统并允许您的团队成员使用或查看构建日志,首先您必须创建一个帐户。

    • 转到Manage Jenkins > Configure System
    • 选中Enable Security复选框
    • Security Realm下,选择Jenkins自己的用户数据库
    • 选中Allow users to sign up复选框
    • Authorization 下,选择Project-based Matrix Authorization Strategy
    • 添加第一个名为 admin 的用户和另一个名为 GitHub 的用户(注意:管理员访问的用户名必须是 admin)对于 GitHub 命名用户,只需选择整体只读权限。稍后我们将在 GitHub 挂钩中使用此用户。

    注意:我们在上述步骤中添加的 admin 和 GitHub 用户不会创建用户。然后你必须创建一个具有相同名称的真实用户。是的,我知道,Jenkins UI 有点奇怪。

    转到管理Jenkins > Manage Users > Create User。创建管理员和 GitHub 用户。

    与 Github 网络挂钩挂钩

    现在要在新的提交或分支被推送到 Github 时自动运行构建,我们必须设置存储库。

    转到您的存储库的挂钩页面。例如

    github.com/<username>/<project_name>/admin/hooks
    

    AVAILABLE SERVICE HOOKS &gt; Post-Receive URLs 下,添加github:github@your-ci-server.com/github-webhook/

    github:github 是我们之前创建的用户。

    然后我们必须使用 Github 验证 Jenkins。转到 Manage Jenkins > Configure System 并在 GitHub Web Hook 下,添加您的 Github 用户名和密码,然后单击 Test Credential 按钮以使用 Github 进行一次授权。

    【讨论】:

    • 我已经这样做了,当我推送到我的开发分支时,什么也没有发生。 webhook 设置为 github:github@my-jenkins-install.com:8080/github-webhook/。但是,即使我在 github 发生更改时检查了构建框,也没有发生拉动
    • @ross.m 所以你创建了一个 Jenkins 用户 'github' 密码 'github'?
    • 我检查了该用户的正确权限,这是我以前没有的。我需要推送到主分支吗?
    • @ross.m 在 GitHub 上推送 master?是的,如果您希望 GitHub 挂钩运行并且 Jenkins 与用户 github 联系,密码 github
    • 啊,我在版本控制下缺少信息 --> git。钩子现在工作得很好,谢谢!
    【解决方案2】:

    当前版本的 GitHub 插件似乎不再需要接受的答案。您可以改为在 GitHub 插件设置下的“配置 Jenkins”中检查 Grant READ permissions for /github-webhook,从而允许无需身份验证即可调用 webhook。

    正如有关此选项的帮助中所解释的那样,这非常安全,坦率地说,这并不比拥有一个名为“github”且密码为“github”的用户更糟糕。

    【讨论】:

      【解决方案3】:

      有两种方法可以在 Jenkins 上实现自动构建。您选择什么取决于 GitHub 是否可以调用您提供的 Jenkins 服务器 URL。如果您在防火墙后面运行 Jenkins,情况可能并非如此。

      1. 如果 GitHub 可以访问该 URL,您可以在此处的存储库中设置 服务挂钩
      2. 如果没有,您可以将 Jenkins 设置为定期轮询

      您可以同时设置这两种方法,但一种解决方案就足以让它发挥作用。如果可行的话,我总是会选择第一个,因为它可以节省资源 CPU 和流量。

      无论哪种方式,您都需要GitHub plugin for Jenkins

      希望能有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-19
        • 2014-07-19
        • 1970-01-01
        • 1970-01-01
        • 2017-10-09
        相关资源
        最近更新 更多