2017-04-26 4 views
0

Ich schreibe eine neue Jenkins-Pipeline und habe eine Reihe von Schritten, die ich irgendwann parallel ausführen möchte. Aber während ich diese Pipeline entwickle, möchte ich sie zwingen, sequentiell zu laufen. Ich sehe keine Möglichkeit, die Anzahl der Threads anzugeben, die ein paralleler Schritt verwendet oder ähnliches. Hier ist der grundlegende Code so weit:Jenkins parallele Aufgaben nacheinander ausführen

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 
    } 
} 

Ich mag würde in der Lage sein, diesen Shell-Skripte nacheinander ohne Änderung eine Menge Code auszuführen.

Antwort

0

Ich kenne keine Möglichkeit, Schritt in Jenkins parallel zu laufen. Sie können parallele Jobs im selben oder in verschiedenen Knoten ausführen.

Laufen parallel Jobs

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

Sie können für jede Bereinigung * .sh einen Job machen und diese Jobs wie oben nennen.

Ein einfacher Ansatz ist, verwenden parallel Befehl

Oder einfachste

clenaup1.sh &! clenaup3.sh &! clenaup4.sh &! ... 
+0

Sorry, Schritte war eine schlechte Wahl von Variablennamen . Ich werde es ändern. – Mateo

0

Statt parallel cleanupScripts können Sie wie folgt verwenden:

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