2017-10-19 3 views

Antwort

1

Ich weiß nicht, wie ich genau das machen soll, was Sie wollen, aber ich denke, Sie könnten etwas tun, was 75% -100% bringt (abhängig davon, was Sie für spätere Schritte erwarten, wenn ein Fehler auftritt)) mit einer gemeinsamen Bibliothek:

pipeline { 
    stages { 
    stage('Do work') { 
     steps { 
      stepsChuckNorrisWrote { 
     ... 
      } 
     } 
    } 
    } 
} 

Dann eine globale Variable in einer gemeinsamen Bibliothek stepsChuckNorrisWrote genannt erstellen. Sie übergeben hier eine Schließung. Dieser Abschluss kann alle gewünschten Schritte enthalten. Wickeln Sie die Ausführung dieses Abschlusses in einen try/catch und lassen Sie es nicht fehlschlagen.

Etwas wie folgt aus:

// vars/stepsChuckNorrisWrote.groovy 
def call(Closure body) { 
    node('windows') { 
     try { 
      body() 
     } catch (all) { 
      // handle errors here 
     } 
    } 
} 

Mit dieser Methode, sobald der erste Schritt ausfällt, keiner der anderen wird sich fortsetzen. Es mag einen Weg geben, jeden Schritt aus dem Verschluss herauszuholen und ihn im Wesentlichen in einen Versuch/Fang zu bringen, aber ich weiß nicht, wie ich so etwas tun soll.

+0

Dank Rob, das ist, was ich dachte, könnte die einzige Option sein. Ich wollte die Notwendigkeit entfernen, den 'Schritt'-Teil zu schreiben, aber durch den Code zu gehen schlägt vor, dass es nicht möglich ist :( –

Verwandte Themen