Ich habe einen Build-Schritt hinzugefügt, um ein Python-Skript auszuführen.
In diesem Skript wird pylint mit dem lint.Run (.. args) aufgerufen, um den Code zu überprüfen.
Das Skript funktioniert, aber am Ende schlägt der Build mit der einzigen Fehlermeldung fehl:
Build step 'Execute Python script' marked build as failure
Jemand hat eine Idee, warum das passiert?
Es sieht so aus, als würde Ihre pylint-Ausführung mit einem Nicht-Null-Status enden (fehlendes Skript, falsche Optionen ...), vielleicht beenden Sie das Skript mit einer ausgelösten Ausnahme oder einem sys.exit(something_else_than_zero)
Pylint hat das unangenehme Verhalten, einen Exit-Code ungleich null zurückzugeben, auch wenn nur ein kleines Problem gefunden wurde. Nur wenn alles in Ordnung war, wird 0 zurückgegeben (siehe Manpage).
Da normalerweise ein Code ungleich Null einen Fehler anzeigt, schlägt Jenkins den Build fehl.
Ich sehe zwei Möglichkeiten, dies zu überwinden:
Ich stimme @dmeister zu, aber mit dem Pipeline-Code (Jenkinsfile) schlage ich einen try / catch vor und parse dann den Fehler. Auf diese Weise können Sie feststellen, ob Sie nur Statusbits von pylint erhalten (siehe die Pylint-Dokumentation), ob pylint einen Verwendungsfehler meldet oder ob ein katastrophaler Fehler aufgetreten ist:
%Vor%Entschuldige die groovigen Puristen - groovy ist nicht mein Ding, also bin ich mir sicher, dass das verbessert werden kann - lass es mich wissen. Es gibt eine bekannte Lücke: Wenn pylint nur "fatale" Fehler (Bit 0) erkennt und keine anderen Probleme (Bits 1-4) nicht gesetzt sind, löst dieser Code fälschlicherweise eine Ausnahme aus. Aber mein Code kennzeichnet Tonnen von Problemen, also ist das kein Problem für mich. Das Update (? Parse Fehler msg?) Könnte für jemanden mit groovy Chops trivial sein.