2

问题:如果另一个构建流正在构建过程中,有没有办法阻止构建流?

这就是我想要做的。我有两个包含多个作业的构建流。我可以阻止给定流的上游或下游作业。但是,如果另一个构建流正在构建,我无法阻止构建流。

这是我的设置:

构建流 1: A1 -> B1 -> C1
构建流 2: A2 -> B2 -> C2

作业A1A2是使用 SCM 插件设置的,以轮询我们 repo 中的不同位置。因此,可以在发现更改的任何时候触发构建。构建流应该被独立处理,但如果另一个有工作构建则阻塞。

我已经尝试过Build Blocker Plug-in但问题是它只会在当前正在构建一个或多个工作时才会阻止。它似乎并不关心构建队列中等待的其他构建。

我提供给我的资源数量有限,所以我不得不加倍构建我们的构建。

4

1 回答 1

2

排除插件可能会在这里为您提供帮助。

您要做的是设置另外两个作业来管理构建火车,M1 作业将具有执行以下操作的构建步骤:

  1. 获取信号量
  2. 触发 A1
  3. 等待 C1 完成
  4. 释放信号量

M2工作将是相似的

  1. 获取信号量
  2. 触发 A2
  3. 等待 C2 完成
  4. 释放信号量

您将需要超时,但这本质上是想法

于 2012-08-10T09:08:06.333 回答