2017-04-26 90 views
0

我正在編寫一個新的Jenkins管道,並擁有一組我最終想要並行運行的步驟。但是,當我正在開發這條管線時,我想強制它順序運行。我沒有看到任何方式來指定並行步驟使用的線程數量或類似的數量。這是基本的代碼至今:按順序運行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腳本。

回答

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 &! ... 
+0

對不起,步驟是變量名的好選擇。我會改變它。 – Mateo

0

parallel cleanupScripts相反,你可以使用這樣的:

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