Wie wird Jenkins als SUCCESS nur für bestimmte Fehler-Exit-Werte (außer 0) markiert?

7

Wenn ich einen Execute shell Build-Schritt zum Ausführen eines Skripts ausführe und das Skript 0 zurückgibt, kennzeichnet Jenkins den Build als SUCCESS , ansonsten wird es als FAILURE gekennzeichnet, was das erwartete Standardverhalten als ist 0 bedeutet keine Fehler und jeder andere Wert stellt einen Fehler dar.

Gibt es eine Möglichkeit, ein Build als SUCCESS nur dann zu markieren, wenn der Rückgabewert mit einem anderen Wert als 0 übereinstimmt (zB 1 , 2 , 3 ...)?

PS: Falls Sie sich fragen, warum ich danach suche, kann ich Jenkins selbst testen, da meine Skripte unterschiedliche Ausgangswerte in Abhängigkeit verschiedener Faktoren liefern Ich erwarte von bestimmten Setup-Fehlern bestimmte Werte und stelle sicher, dass meine gesamte Jenkins-Integration diese aufgreift.

    
Max 25.11.2012, 12:27
quelle

5 Antworten

14

Gut, ich ging auf IRC #jenkins und niemandem neu über ein Plugin, um einen bestimmten Job-Status abhängig von einem bestimmten Exit-Code einzustellen :( Ich schaffte es, was ich wollte, indem ich einen Execute shell -Schritt mit dem erstellen folgender Inhalt:

%Vor%

- Das Ausführen des Skripts unter bash -c ermöglicht das Abfangen des Exit-Codes und verhindert, dass Jenkins die Build-Ausführung stoppt, wenn der Exit-Code anders als 0 ist (was normalerweise der Fall ist).

- $? wird nach der Ausführung des Skripts als $? interpretiert und stellt seinen Beendigungscode dar.

- $EXPECTED_EXIT_CODE ist einer meiner Job-Parameter, der den Exit-Code definiert, den ich erwarte.

-Die if -Anweisung führt einfach Folgendes aus: Wenn ich den erwarteten Exit-Code erhalte, beende ich mit 0, so dass der Build als SUCCESS markiert wird, andernfalls mit 1, damit der Build als FAILURE markiert wird. .

    
Max 26.11.2012, 14:11
quelle
3
%Vor%

Ich würde fortfahren anstelle von exit 0 verwenden, falls Sie andere Elemente darunter haben, die Sie durchlaufen müssen.

    
Bruce Wayne 12.06.2014 15:25
quelle
1

Erstellen Sie einen Wrapper für Ihr Shell-Skript. Lassen Sie diesen Wrapper Ihre Tests ausführen und stellen Sie dann den Resturn-Wert nach beliebigen Kriterien ein.

    
Bryan Oakley 25.11.2012 14:01
quelle
1

Kann mit dem Textfinder-Plugin :

  • Lassen Sie Ihr Skript den Exit-Code ausgeben, mit dem es beendet werden soll, zB:
    Failed on XXX - Exiting with RC 2

  • Verwenden Sie das Textfinder-Plug-In , um diese Fehlermeldung abzufangen und den Build als "Fehlgeschlagen" oder "Instabil" zu kennzeichnen, und wenn Sie sich beispielsweise für RC 2 entscheiden. 3 und 4 sollten den Build als 'Instable' markieren, nach Text in diesem Muster suchen:
    Exiting with RC [2-4] .
Gonen 26.11.2012 07:51
quelle
0

Ich mache es so:

%Vor%

Hier ist +e , um das Standardverhalten von Jenkins zu vermeiden, um FAILURE bei Niesen während der Skriptausführung zu melden. Dann komm zurück mit -e .

Damit Sie Ihren Exit-Code entsprechend behandeln können, andernfalls FAIL mit dem zurückgegebenen Code.

    
RAM237 05.07.2017 16:27
quelle