2017-08-08 3 views
2

Ich habe einen jenkins Skript zu erfassen, die von jenkins Pipeline Job verwendet:Jenkinsfile, wie mehrere Ausnahmen in parallelen Zweigen

try{ 
    parallel branch1: { 
     //some function that may throw exception 
    }, branch2: { 
     //some function that may throw exception 
    }, branch3: { 
     //some function that may throw exception 
    } 
}catch(Exception e){ 
    //gather the error information together (if there 1 error then just it, if there are 2 errors then concatenate 2 errors together, etc) and print it. 
} 

Wie kann ich das tun? oder ich kann das einfach nicht machen?

Antwort

0

Angenommen, Sie können Ihre Fehler in einer Variablen erfassen, erfassen Sie die Ausgabe und speichern Sie sie für die Endphase. Dann müssen Sie nur das Build-Ergebnis pro Stufe als Erfolg festlegen, um zu verhindern, dass der Job vorzeitig abbricht. Siehe this question für wie das geht. Schließlich verketten Sie Ihre Variablen am Ende.

Das Endergebnis könnte aussehen (Semi-Pseudocode);

try{ 
    parallel branch1: { 
     //some function that may throw exception 
     error1=$(echo error) 
     currentBuild.result = 'SUCCESS' 
     return 
    }, branch2: { 
     //some function that may throw exception 
     error2=$(echo error) 
     currentBuild.result = 'SUCCESS' 
     return 
    }, branch3: { 
     //some function that may throw exception 
     error3=$(echo error) 
     currentBuild.result = 'SUCCESS' 
     return 
    } 
}catch(Exception e){ 
    //gather the error information together (if there 1 error then just it, if there are 2 errors then concatenate 2 errors together, etc) and print it. 
    print $error1 + $error2 + $error3 
} 

ich könnte nehmen sie sogar außerhalb eines try/catch und verlassen sich nur auf Ihre currentBuild.result s Einstellung der Fehler zu behandeln.