有没有buildbot轮询一个新的提交git存储库?

时间:2009-03-14 05:11:26

标签: git continuous-integration buildbot

是否有buildbot插件会针对新提交轮询git存储库,例如当前包含的changes.SVNPoller

我找到的最接近的是git_buildbot.py,但是它作为一个后提交钩子,所以不适用于我的设置(使用Github,并且在github的post-commit无法访问的机器上使用buildbot) - 简单地轮询git存储库可以很好地工作。

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

3 个答案:

答案 0 :(得分: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项目中,但它到目前为止一直在为我们工作,并希望它可能对其他人有用:)

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

我有自己的存储库从远程克隆,git_buildbot.py由后合并挂钩调用(如git_buildbot.py中所述)。我有一个小循环睡觉和git拉入该回购将触发合并后的钩子。