Ich habe Windows 10 und möchte den SH-Befehl in der Jenkinsfile von Jenkins-Pipeline mit Bash für Ubuntu für Windows ausführen. Dies funktioniert jedoch nicht
Ich habe die folgende Phase in meiner Jenkins-Pipeline:
stage('sh how to') {
steps {
sh 'ls -l'
}
}
Die Fehlermeldung lautet:
[C:\Programme (x86)\Jenkins\workspace\pipelineascode] Ausführen des Shell-Skripts Programm "Nohup" kann nicht ausgeführt werden (im Verzeichnis "C:\Programme (x86)\Jenkins\workspace\pipelineascode"): CreateProcess-Fehler = 2, Le fichier spécifiéé introuvable
Ich habe versucht, Jenkins Parameter-> Shell ausführbar mit zu ändern
C:\Windows\System32\bash.exe
aber der gleiche Fehler ...
wie man ein Sh-Skript mit der Windows 10-bash ausführt?
Bei einer sehr schnellen Suche sieht es so aus, als ob Ihr Fehler mit dem folgenden Problem zusammenhängt: JENKINS-33708
Die Hauptursache sieht so aus, als ob der Schritt sh
unter Windows nicht unterstützt wird. Sie können beispielsweise bat
verwenden oder Cygwin
installieren.
Im vorherigen Link wurden jedoch zwei Lösungen vorgeschlagen, die Sie zur Durchführung der folgenden Schritte vorschlagen:
C:\Program Files\Git\bin
) im globalen Suchpfad befindet, damit Jenkins sh.exe finden kannAbhängig von Ihrer Installation müssen Sie möglicherweise folgende Pfade verwenden:
Mit Git für Windows 2.16.2 konnte ich C:\Program Files\Git\usr\bin zum PATH hinzufügen (statt C:\Program Files\Git\bin). Meine sh-Befehle funktionieren daher sowohl in FreeStyle als auch in Pipeline-Builds Kein Minkink war notwendig. ( Quelle )
Bei Git für Windows musste ich C:\Program Files\Git\bin
zur Umgebungsvariablen PATH
des Slave-Knotens in Jenkins hinzufügen (um Zugriff auf sh
zu erhalten) und dann C:\Program Files\Git\usr\bin
lokal zu PATH
(um auf Nohup
zuzugreifen).
Der Wechsel von sh zu bat hat für mich funktioniert - ich verwende Jenkins unter Windows. Aber erst nachdem ich ein Problem gelöst hatte, das durch die Tatsache verursacht wurde, hatte ich meine Werkzeuge (maven und das JDK) in Jenkins nicht korrekt konfiguriert.