如何配置buildbot以便每次推送有一个构建?

时间:2015-02-25 16:34:20

标签: git buildbot

假设master中有以下git提交(我们使用pull请求,但下面的内容更容易重现问题):

$ git clone <my_repo> my_repo
$ cd my_repo
$ git checkout master
$ for delta in 17 34 68; do  # touch & commit a file and then sleep for $delta
   f=$(date +%H%M%S)-$delta  # hhmiss dateformat
   touch $f
   git add $f
   git commit $f -m"timestamped file $f"
   sleep $delta
done
$ git push origin

并且有一个GitPoller pollInterval=60, usetimestamps=False

的构建器

此推送会导致触发2个构建:

  • 第一次构建选择了第一次提交
  • 第二个构建获取另外两个提交(因为提交在等待构建完成时堆积)

我想配置buildbot(0.8.10),以便对于一次推送(或合并请求),只触发一次构建。

到目前为止我看过的内容:

1 个答案:

答案 0 :(得分:1)

使用treeStableTimer设置为您希望调度程序等待树不再更改的时间跨度的调度程序。例如SingleBranchScheduler支持它。它描述如下:

  

treeStableTimer

     

调度程序将在开始构建之前等待这么多秒。如果在此间隔期间进行了新的更改,则计时器将重新启动,因此实际上构建将在更改后启动,然后在此非活动数秒后启动。

     

如果treeStableTimerNone,则会为每次更改立即启动单独的构建。

我使用SingleBranchScheduler和5分钟的计时器,它的效果非常好。只要我提交,就没有开始构建。如果我停下来5分钟,那么就会开始构建。

我碰巧也在使用git,但这个解决方案适用于任何版本控制系统。