Wenn ich meinen Erstellungsprozess unter Windows Server 2008 ausführen, schlägt die Fehlermeldung "Fehler" fehl
Programm "foo" kann nicht ausgeführt werden: CreateProcess: Fehler = 2. Das System kann die angegebene Datei nicht finden
Ich hatte bereits ein ähnliches Problem auf Ubuntu Server und löste es, indem ich den Pfad zum Ordner mit den von Composer global installierten Binärdateien zur PATH-Variablen in Jenkins config (Manage Jenkins -> Configure System -> Global properties -> Environment variables: name=PATH, value=$PATH:$COMPOSER_HOME/vendor/bin/
) hinzufügte:
(Aufgrund einer Berechtigung wurde COMPOSER_HOME
außerhalb des /root
-Verzeichnisses verschoben, ein anderes Verzeichnis, das für Jenkins zugänglich ist, wurde ebenfalls benötigt.)
Jetzt habe ich es auch unter Windows versucht, aber es funktioniert nicht. Also, vielleicht setze ich einfach die PATH
falsch. Was ich probiert habe:
PATH
$PATH:D:\path\to\COMPOSER_HOME\vendor\bin
PATH
$PATH;D:\path\to\COMPOSER_HOME\vendor\bin
PATH
%PATH%D:\path\to\COMPOSER_HOME\vendor\bin
PATH
%PATH%;D:\path\to\COMPOSER_HOME\vendor\bin
Wie kann man die Umgebungsvariable PATH
in Jenkins-Konfigurationen einstellen, die korrekt unter Windows funktioniert?
Das Problem, das ich hatte, wurde nicht durch eine falsche Path
-Konfiguration verursacht. %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin
ist korrekt.
Es muss "Pfad" sein, nicht "PFAD".
Jenkins behandelt diese spezielle Variable auf Groß- und Kleinschreibung, und nur "Path" wird als Pfadvariable erkannt. "PATH" sieht jenkins wie eine generische Umgebungsvariable aus, auch unter Windows.
Wenn Sie es lokal für den jeweiligen Job festlegen möchten, versuchen Sie es in Schritt Build -> Execute batch Command
:
//append more variables separated by ; if required
SET Path=%PATH%;C:\Program Files\Git\bin;
//run your command here
git --version
Dieser Ansatz funktioniert für jeden Befehlstyp, den Sie ausführen wollten. Fügen Sie einfach die entsprechende Umgebungsvariable lokal zur Path-Variablen hinzu, wie oben gezeigt.
Ich hatte eine ähnliche Anforderung, die Variable Path auf einem Windows-Slave mit einem Windows-Jenkins-Master anzupassen. Ich wollte keine globale Umgebungsvariable von Jenkins erstellen und wollte, dass diese Variable für einen bestimmten Windows-Knoten/Agenten spezifisch ist.
Folgendes habe ich getan:
1) Erstellen Sie eine Umgebungsvariable wie unten gezeigt in Knoten -> WindowsNode -> Konfigurieren:
2) Verbindung zum Jenkins-Knoten getrennt.
3) Neustart meines Jenkins-Systemprozesses direkt am Slave.
4) Testen Sie es, indem Sie auf Nodes -> WindowsNode -> System Information klicken und die neue, dem Knoten zugewiesene Umgebungsvariable sehen:
5) Verwendete es dann in einem Jenkins-Job, der auf dem Windows-Slave/Agenten ausgeführt werden würde, indem er den folgenden Befehl zu einem Buildschritt für Execute Windows Batch Command hinzufügt:
git --version
verwechsle dich nicht über% PATH% vs $ PATH im Feld Wert. Während% PATH% die richtige Syntax für Windows-Knoten ist, sollten Sie/foo/bar: $ PATH verwenden, um PATH auf Unix-Knoten zu erweitern
Zum Hinzufügen eines Pfads für Slave-Knoten, z. B. die Variable "home env".
Es kann ein Verzeichnis von der Slave-Nide-Konfiguration aus erstellt werden.
Öffnen Sie die Konfigurationseinstellungen für einen beliebigen Slave-Knoten und fügen Sie die verfügbaren Informationen hinzu.
Um beispielsweise HOME festzulegen, fügen Sie einfach den Namen und den Ort des Home-Verzeichnisses hinzu.