Ich verwende Jenkins PowerShell-Plugin, um ein Projekt zu erstellen.Jenkins Powershell-Plugin baut immer erfolgreich
Allerdings habe ich festgestellt, dass Jenkins immer meinen Build erfolgreich betrachtet, egal was ich in Windows PowerShell
Befehl eingeben.
Hier ist ein Beispiel:
Wie Sie sehen können, asdf
ist kein Recht Befehl. Jenkins sollte mir nach dem Build FAILURE
geben.
Aber die Ausgabe der Konsole gibt mir:
Started by user admin
Building in workspace C:\Users\Administrator\.jenkins\jobs\Test\workspace
[workspace] $ powershell.exe -NonInteractive -ExecutionPolicy ByPass "& 'C:\Users\ADMINI~1\AppData\Local\Temp\hudson2092642221832331776.ps1'"
The term 'asdf' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\Users\ADMINI~1\AppData\Local\Temp\hudson2092642221832331776.ps1:1 char:5
+ asdf <<<<
+ CategoryInfo : ObjectNotFound: (asdf:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Finished: SUCCESS
denke ich, das Ausführungsergebnis von Powershell sollte auf $lastexitcode
abhängen.
Ist dies ein Fehler des PowerShell-Plugins?
In Ihrem Powershell-Skript, wenn ein Fehler auftritt, verwenden Sie "exit x", wobei x eine Zahl ungleich Null ist. Sehen Sie, ob Jenkins es als gescheitert ansieht. – DanL
Ja, Jenkins betrachtet "Exit 1" als fehlgeschlagen. – Brian
Dann ändern Sie Ihre Skripte, um mit einem Fehlercode ungleich Null zu beenden, wenn ein Fehler auftritt. Wenn Sie möchten, dass es nur von $ lastexitcode abhängt, dann prüfen Sie am Ende Ihres Skripts $ lastexitcode und verwenden Sie gegebenenfalls exit 1. – DanL