Jenkins - 根据执行器和工作区限制并发构建

问题描述 投票:0回答:1

我正在尝试找到一种解决方案来控制不同作业的执行,如下所示: 我有一堆机器,它们都具有相同的工作区格式 > Jenkins/workspace/W1 所有作业都使用相同的工作空间,并且可以在所有计算机上运行,但同一台计算机上一次只能运行一个作业。

例如: 机器:B1、B2、B3(都有一个名为 W1 的工作区);

工作:J1、J2

J1 在 B1 上触发 - 应该运行;

J2 在 B2 上触发 - 应该运行,因为工作区 W1 在 B2 上可用;

J1 在 B3 上触发 - 应该运行,因为工作区 W1 在 B3 上可用;

J2 在 B1 上触发 - 应该等待 J1 的执行,因为 W1 在 B1 上不可用

所以基本上我需要根据机器的工作空间可用性来控制构建的限制,而不是工作。我知道 Jenkins 的默认行为是创建 W2,以防 W1 不可用,这是我想 100% 避免的事情。

jenkins
1个回答
0
投票

您可以将 Jenkins 代理配置为只有一个执行器,因此该代理上不能同时执行两个作业。 这是 CloudBees 对此的一篇很好的文章。

© www.soinside.com 2019 - 2024. All rights reserved.