gpt4 book ai didi

jenkins - 与 Jenkins 并行运行

转载 作者:行者123 更新时间:2023-12-03 17:40:44 24 4
gpt4 key购买 nike

我有几个(几百个)文件要运行测试(每个测试需要几分钟)。

按顺序运行是 Not Acceptable ,也不能同时运行。所以我正在寻找像生产者-消费者这样的东西。

我通过以下方式尝试了管道作业和并行命令:

def files = findFiles glob: 'test_files/*'
def branches = [:]

files.each{
def test_command = "./test ${it}"
branches["${it}"] = { sh "${test_command} ${it}"}
}

stage name:'run', concurrency:2
parallel branches

问题:

所有任务同时启动(OOM 和所有的乐趣)

最佳答案

没有与 Jenkins 并行步骤相同的内省(introspection),但由于它似乎不支持固定池,您可以使用 xargs达到相同的结果:

def files = findFiles glob: 'test_files/*'
def branches = [:]

// there's probably a more efficient way to generate the list of commands
files.each{
sh "echo './test ${it}' >> tests.txt"
}

sh 'cat tests.txt | xargs -L 1 -I {} -P 2 bash -c "{}"'
-P参数是指定固定数量的 2(或 N)个进程应始终运行的参数。像 GNU Parallel 这样的其他工具提供了更多关于应该使用多少进程的调整。

您也可以尝试使用 lockLockable Resources plugin 开始, node针对固定数量的执行者的步骤。但是,这对我来说似乎开销太大,除非您的单个测试已经花费了数十秒。

关于jenkins - 与 Jenkins 并行运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37317414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com