Jenkins管道在不同从站上并行执行的阶段

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

我正在使用6个奴隶-每个Jenkins设置都有4个执行程序来运行脚本化的多分支管道。

我面临的问题是,当我尝试在不同的[[slaves而不是executors上并行执行管道的4个阶段时。由于詹金斯家族由多个团队共享,因此我不能将奴隶限制为一个执行者,以确保1阶段-1奴隶关系。我尝试添加disableConcurrentBuilds()选项,但还是没有运气。

如何确保将四个并行级分配给4个不同的从站?
jenkins-pipeline jenkins-plugins jenkins-groovy
1个回答
0
投票
[在类似情况下,我们将执行程序的数量限制为1个。以前,VM的功能足以运行4个执行程序,我们销毁了它们并创建了4个小型VM,每个都有1个执行程序。这样可以保证在不同的VM上并行执行。

原因是,尽管您可以做出合理的努力来确保团队的阶段A不干扰您的团队的阶段B(目前看来他们

do会干扰,因此您的问题是)–您不能对以下方面做出任何假设:a)您的某些阶段不会破坏其他团队的阶段;或b)他们的阶段会破坏你的。在我们的情况下,舞台上的磁盘空间已用完,所以我们之前要清理Docker映像,对吗?糟糕-另一个执行程序正在使用该映像,并且docker守护程序在所有执行程序之间共享。这是另一种情况:您的阶段创建了一个大文件-存储空间耗尽-最多有[[four个作业失败(您以及三个无辜的执行者)。]

您最好的做法似乎是说服用4台小型1台执行器机器替换4台大型执行器的能力。您的其他选择包括使用“可锁定资源”插件并锁定例如机器的名称。这不会阻止在同一台机器上调度管道的不同部分,但是会保留其中一个阶段,直到上一个阶段结束为止。根据我们的经验,这导致流水线执行时间大大增加,而没有任何实质性收益。
© www.soinside.com 2019 - 2024. All rights reserved.