8

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

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

我目前每小时运行一次构建,但除非有什么改变,否则运行测试没有任何意义。

4

3 回答 3

9

更新: 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 项目,但到目前为止它一直在为我们工作,并希望它对其他人有用:)

于 2010-06-18T18:07:20.060 回答
1

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

于 2009-03-22T15:08:16.563 回答
0

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

我从远程克隆了我自己的存储库,并且 git_buildbot.py 由 post-merge 钩子调用(如 git_buildbot.py 中所述)。我有一个小循环在睡觉,git 拉入那个 repo,这将触发 post-merge 钩子。

于 2010-08-31T14:46:01.173 回答