it-swarm.com.de

Wie kann man die Umgebungsvariable PATH in der Jenkins-Konfiguration unter Windows einstellen?

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:

enter image description here

(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?

14
automatix

Das Problem, das ich hatte, wurde nicht durch eine falsche Path-Konfiguration verursacht. %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin ist korrekt.

enter image description here

16
automatix

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.

17
Roderick

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.

2
Sri7

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:

 Nodes -> WindowsNode -> Configure

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:

 enter image description here

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

1
joshm

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

1
pocketrocket
  • 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.

0
Priyanka Rawat