是否有buildbot插件会针对新提交轮询git存储库,例如当前包含的changes.SVNPoller
?
我找到的最接近的是git_buildbot.py,但是它作为一个后提交钩子,所以不适用于我的设置(使用Github,并且在github的post-commit无法访问的机器上使用buildbot) - 简单地轮询git存储库可以很好地工作。
我目前每小时进行一次构建运行,但除非发生变化,否则运行测试并没有任何意义。
答案 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拉入该回购将触发合并后的钩子。