Jenkins - 如何阻止构建流?

时间:2012-08-09 04:13:47

标签: version-control build jenkins

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

这是我正在尝试做的事情。我有两个包含多个作业的构建流。我可以阻止给定流上下游的作业。但是,如果其他构建流正在构建,我无法阻止构建流。

以下是我的设置:

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

使用SCM插件设置

A1 A2 ,以轮询我们仓库中的不同位置。因此,构建可以在发现更改时随时触发。构建流应该独立处理,但如果另一个构建了作业则阻塞。

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

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

1 个答案:

答案 0 :(得分:2)

Exclusion Plugin可以在这里为您提供帮助。

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

  1. 抓住信号量
  2. 触发A1
  3. 等待C1完成
  4. 释放信号量
  5. M2工作将类似

    1. 抓住信号量
    2. 触发器A2
    3. 等待C2完成
    4. 释放信号量
    5. 你需要超时,但这基本上就是这个想法