如何同时/每个节点触发jenkins作业

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

我创建了一个名为JobFoo的Job,它接受参数sleep。我有 3 个节点,nodeA、nodeB、nodeC,并且所有节点都与 Lable JobFooRunner 相关联。 任何节点一次只能运行一个JobFoo。 因此,如果我同时使用参数(sleep=1,2,3,4)触发JobFoo 4次。然后 3 个作业应该在不同的节点上并行运行,第 4 个作业应该在队列中。每当任何节点空闲时,它将运行最后第四个作业。

我该如何实现这一点,我尝试过“节点和标签参数插件”,但它总共运行了 4*3=12 个作业。

jenkins jenkins-pipeline jenkins-plugins jenkins-groovy cicd
1个回答
0
投票

老实说,你并不清楚你真正想要实现什么。 默认情况下,当您对多个构建进行排队并且管道代码中没有定义

disableConcurrentBuilds
选项时,Jenkins 将执行您所描述的操作。

如果您想要更多容量来并行运行构建,您可以增加每个节点上的执行器数量。但请注意后果 - 关于性能和稳定性,因为构建可以同时使用相同的资源,例如缓存。

如果您想并行触发具有 3 组不同参数的同一管道,请查看

matrix
功能,或在
parallel
块中定义 3 个阶段。后者也可以动态完成。

如果您想将每个作业的最大并发构建数限制为 3,您可以定义一个 可锁定资源,最大数量为 3,并在管道中定义

lock
该资源。

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