按顺序运行Jenkins并行任务

时间:2017-04-26 16:12:55

标签: jenkins parallel-processing jenkins-pipeline

我正在编写一个新的Jenkins管道,并且有一组我最终希望并行运行的步骤。但是,虽然我正在开发这个管道,但我想强制它按顺序运行。我没有看到任何方法来指定并行步骤使用的线程数或类似的东西。这是迄今为止的基本代码:

node('x') {
    stage('cleanup'){
        def cleanupScripts = [:]
        cleanupScripts[1] = { sh(script: "cleanup1.sh") }
        cleanupScripts[2] = { sh(script: "cleanup2.sh") }
        cleanupScripts[3] = { sh(script: "cleanup3.sh") }
        cleanupScripts[4] = { sh(script: "cleanup4.sh") }
        parallel cleanupScripts
    }
}

我希望能够顺序运行这些shell脚本,而无需更改大量代码。

2 个答案:

答案 0 :(得分:2)

而不是parallel cleanupScripts,您可以这样使用:

cleanupScripts.each{ key, value ->
    value()
}

答案 1 :(得分:0)

我不知道在詹金斯中并行运行的任何方式。您可以在同一节点或不同节点中运行并行作业。

运行并行作业

parallel (
// job 1, 2 and 3 will be scheduled in parallel.
{ build("job1") },
{ build("job2") },
{ build("job3") }
)

你可以为每次清理工作* .sh并像上面那样调用这些工作。

更简单的方法是使用parallel命令

或最简单

clenaup1.sh &! clenaup3.sh &! clenaup4.sh &! ...