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

How to configure buildbot so that there is one build per push?

假设以下 git 在 master 中提交(我们使用 pull requests,但下面更容易重现问题):

$ 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

还有一个 GitPollerpollInterval=60, usetimestamps=False

的生成器

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

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

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

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

treeStableTimer

The scheduler will wait for this many seconds before starting the build. If new changes are made during this interval, the timer will be restarted, so really the build will be started after a change and then after this many seconds of inactivity.

If treeStableTimer is None, then a separate build is started immediately for each Change.

我使用带 5 分钟计时器的 SingleBranchScheduler,效果非常好。只要我提交,就不会开始构建。如果我停下来 5 分钟,然后构建开始。

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