问题:如果另一个构建流正在构建过程中,是否有办法阻止构建流?
这就是我正在尝试做的事情。我有两个包含多个作业的构建流。我可以阻止给定流的上游或下游作业。但是,如果另一个构建流正在构建,我无法阻止该构建流。
这是我的设置:
构建流 1: A1 -> B1 -> C1
构建流 2: A2 -> B2 -> C2
作业A1和A2是使用SCM插件设置的,以轮询我们存储库中的不同位置。因此,可以在发现更改的任何时候触发构建。构建流应独立处理,但如果其他流正在构建作业,则应阻止构建流。
我已经尝试过构建阻止程序插件,但问题是它仅阻止当前正在构建的一个或多个作业。它似乎并不关心构建队列中等待的其他构建。
我所获得的资源数量有限,因此我必须加倍构建。
最佳答案
Exclusion Plugin也许可以帮到你。
您要做的是设置另外两个作业来管理构建序列,M1 作业将具有执行以下操作的构建步骤:
- 获取信号量
- 触发器A1
- 等待 C1 完成
- 释放信号量
M2 工作将类似
- 获取信号量
- 触发A2
- 等待 C2 完成
- 释放信号量
你需要超时,但这本质上就是这个想法
关于version-control - Jenkins - 如何阻止构建流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11876718/