Halt ein jenkins-pipeline-job zu früh
In unserem Jenkins-Pipeline-job, den wir haben, ein paar Stufen, und was ich möchte ist, wenn eine der Stufen ausfallen, dann haben Sie das bauen zu stoppen und nicht weiter auf die weiteren Etappen.
Hier ist ein Beispiel für eine der Stufen:
stage('Building') {
def result = sh returnStatus: true, script: './build.sh'
if (result != 0) {
echo '[FAILURE] Failed to build'
currentBuild.result = 'FAILURE'
}
}
Das Skript schlägt fehl, und das build-Ergebnis-update, aber der job geht weiter, auf zu den nächsten Etappen. Wie kann ich das Abbrechen oder halt den job, wenn dies geschieht?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Grunde das ist, was die
sh
Schritt tut. Wenn Sie nicht erfassen, das Ergebnis in einer Variablen, Sie können einfach run:Diese wird beendet, wenn das Skript reurns einem nicht-null exit-code.
Wenn Sie brauchen, um Dinge zu tun, die erste, und erfassen müssen das Ergebnis, können Sie ein shell-Schritt, beenden Sie den job
Aber die folgenden wird Ihnen die gleiche, aber es scheint mehr vernünftig tun
Ist es auch möglich, den Anruf zurück in Ihrem code. Jedoch wenn Sie innerhalb eines
stage
es erst wieder aus dieser Phase. Sonicht den Auftrag beenden, aber
wird.
Anderen Weg, um dieses Verhalten zu erzielen, ist eine Ausnahme. In der Tat, das ist genau das, was Jenkins selbst stellt. So, Sie können auch die build-status entweder zu
ABORTED
oderFAILURE
. In diesem Beispiel bricht der build:Ausgabe:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use new hudson.AbortException java.lang.String
Da Jenkins v2 sollten auch diese Arbeit
Der Auftrag endet mit: