Wie führe ich einen Befehl in einem Jenkins 2.0-Pipeline-Job aus und gebe dann das stdout zurück
Gibt es eine bessere Möglichkeit, eine shell zu starten Aufgabe in einem Jenkins 2.0-pipeline und dann wieder die stdout
des Befehls. Nur so kann ich diese zu arbeiten ist, leiten Sie die Ausgabe des Befehls in eine Datei und Lesen Sie dann die Datei in eine variable.
sh('git config --get remote.origin.url > GIT_URL')
def stdout = readFile('GIT_URL').trim()
Scheint dies wie eine wirklich schlechte Weg, um wieder den Ausgang. Ich hatte gehofft, ich könnte etwas tun wie:
def stdout = sh('git config --get remote.origin.url').stdout
oder
def exitcode = sh('git config --get remote.origin.url').exitcode
Ist das möglich?
InformationsquelleAutor der Frage user6253266 | 2016-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update
Seit 6/2016 JENKINS-26133 ist offiziell als Aufgelöst gekennzeichnet. Daher, bevor Sie versuchen, unter Problemumgehungen, versuchen Sie zunächst, unterstützt Umsetzung für
sh
/bat
die es möglich macht zu nutzenreturnStdout
undreturnStatus
Parameter.Workarounds
Leider ist diese Funktion noch nicht unterstützt wird und fehlt. Weitere Informationen entnehmen Sie bitte dem offiziellen ticket:
InformationsquelleAutor der Antwort luka5z
Ja als luka5z erwähnt, version 2.4 von Pipeline-Knoten und Prozesse-Plugin unterstützt jetzt auch diese Art von Sachen:
Scheint, wenn Sie versuchen, wieder beide in der selben Skript, returnStatus überschreiben returnStdout das ist ein bisschen bedauerlich.
Lesen Sie mehr in der offiziellen Dokumentation hier
Bearbeiten:
Darüber hinaus ermöglicht es Ihnen feinere Kontrolle über Fehler/unstable build-Status zu. Sie können sehen, ein Beispiel in meinem Kommentar hier
InformationsquelleAutor der Antwort philbert