【问题标题】:How to configure buildbot so that there is one build per push?如何配置 buildbot 以便每次推送一个构建?
【发布时间】:2015-02-25 16:34:20
【问题描述】:

假设以下 git 在 master 中提交(我们使用拉取请求,但以下更容易重现问题):

$ 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),以便一次推送(或合并请求)只触发一次构建。

到目前为止我所看到的:

【问题讨论】:

    标签: git buildbot


    【解决方案1】:

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

    treeStableTimer

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2012-07-11
      相关资源
      最近更新 更多