2017-03-10 4 views
1

Ich versuche die neue deklarative Pipeline-Syntax.So brechen Sie eine deklarative Pipeline ab

Ich frage mich, wie kann ich alle Stufen und Schritte einer Pipeline abbrechen, wenn zum Beispiel ein Parameter einen ungültigen Wert hat.

Ich könnte eine when Klausel zu jeder Stufe hinzufügen, aber das ist nicht optimal für mich. Gibt es einen besseren Weg?

Antwort

4

Dies sollte gut mit einer when Richtlinie funktionieren, wenn Sie den error Schritt verwenden.

Zum Beispiel könnten Sie eine up-front-Check machen und den Build abbrechen, wenn der neue Wert nicht akzeptabel ist - verhindert nachfolgenden Stufen ab:

pipeline { 
    agent any 
    parameters { 
    string(name: 'targetEnv', 
      defaultValue: 'dev', 
      description: 'Must be "dev", "qa", or "staging"') 
    } 
    stages { 
    stage('Validate parameters') { 
     when { 
     expression { 
      // Only run this stage if the targetEnv is invalid 
      !['dev', 'qa', 'staging'].contains(params.targetEnv) 
     } 
     } 
     steps { 
     // Abort the build, skipping subsequent stages 
     error("Invalid target environment: ${params.targetEnv}") 
     } 
    } 
    stage('Checkout') { 
     steps { 
     echo 'Checking out source code...' 
     } 
    } 
    stage('Build') { 
     steps { 
     echo 'Building...' 
     } 
    } 
    } 
} 
+0

Dank. Ich wusste nichts über den "Fehler" -Schritt –

+0

Danke, aber wie man mit dem Ergebnis 'Success' zur nächsten Stufe übergeht – Deepaklal

Verwandte Themen