webentwicklung-frage-antwort-db.com.de

Skriptierte Jenkins-Pipeline: Fortsetzung bei Fehler

Gibt es eine Möglichkeit, die Ausführung der Skript-Pipeline auch dann fortzusetzen, wenn die vorherige Stufe fehlgeschlagen ist? Ich muss bestimmte Befehle ausführen (Bereinigung), wenn der Build fehlschlägt, bevor der gesamte Job fehlschlägt.

5
user2988257

Die übliche Vorgehensweise besteht darin, Ihre Schritte in einen try-Block zu packen.

try {
  sh "..."
} catch (err) {
  echo "something failed"
}
// cleanup
sh "rm -rf *"

Um den Schmerz zu lindern und den Pipeline-Code lesbarer zu machen, habe ich dies in einer anderen Methode hier in meinem globalen Bibliothekscode eingekapselt.

Ein anderer Ansatz, insb. Aufgrund dieses Problems erstellt, sind deklarative Pipelines ( blog , präsentation ).

14
StephenKing
  post {
    always {
      cleanWs()
    }
  }
}

Bereinigt den Job immer, auch wenn der Rest fehlschlägt

0
Chris Welsh