【问题标题】:Have buildbot poll a git repository for new commits?有 buildbot 轮询 git 存储库以获取新提交吗?
【发布时间】:2009-03-14 05:11:25
【问题描述】:

是否有 buildbot 插件可以轮询 git 存储库以获取新提交,例如当前包含的 changes.SVNPoller

我找到的最接近的是git_buildbot.py,但它用作提交后挂钩,因此不适用于我的设置(使用 Github,以及在 github 提交后无法到达的机器上的 buildbot) - 只需轮询git 存储库将完美运行。

我目前每小时运行一次构建,但运行测试没有任何意义,除非发生了变化。

【问题讨论】:

    标签: git continuous-integration buildbot


    【解决方案1】:

    更新: Buildbot 项目的好心人已将 GitPoller 设为 0.8.2 版的官方变更源,并对原始版本进行了多项改进。


    我们公司的情况类似,GitHub 的 post-commit 钩子无法访问我们的构建机器。我写了一个GitPoller 更改源,可以像SVNPoller 一样使用。

    可以在这里找到:http://github.com/wimba/buildbot/blob/master/buildbot/changes/gitpoller.py

    并像这样使用:

    from buildbot.changes.gitpoller import GitPoller
    c['change_source'] = GitPoller('git@example.com:foobaz/myrepo.git',
                                   branch='great_new_feature')
    

    它将创建一个本地存储库以供使用(位置可配置),并且仅使用git 1.7 进行了测试,因此您的里程可能会有所不同。

    希望它会在某个时候适当地被拉入 Buildbot 项目,但到目前为止它一直在为我们工作,并希望它对其他人有用:)

    【讨论】:

      【解决方案2】:

      我根本没有玩过 buildbot,但你不能做一个git fetch 然后看看git log master..origin/master 的输出吗?如果没有新的提交,则输出将为空(当然,您可以在git log 上使用大量其他选项)。如果有新的提交,那么只需执行git merge 并开始您的构建/测试周期。

      【讨论】:

        【解决方案3】:

        我喜欢 gitpoller.py 方法,但目前我发现它有点受限(例如,不发送修订、项目参数)所以找到了不同的解决方案:

        我有我自己的仓库克隆自远程和 git_buildbot.py 由 post-merge 钩子调用(如 git_buildbot.py 中所述)。我有一个小循环正在休眠,并且 git 会拉入那个 repo,这将触发 post-merge 钩子。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-09-20
          • 2021-07-20
          • 2013-11-06
          • 2012-06-01
          • 2020-09-06
          • 2014-10-23
          • 2017-06-30
          相关资源
          最近更新 更多