risposta-alla-domanda-sullo-sviluppo-web-bd.com

Come impostare la variabile d'ambiente PATH nella configurazione di Jenkins su Windows?

Quando eseguo il mio processo di compilazione su Windows Server 2008, non riesce con il messaggio di errore come

Impossibile eseguire il programma "foo": CreateProcess: error = 2, Il sistema non riesce a trovare il file specificato

Ho già avuto un problema simile su Ubuntu Server e l'ho risolto aggiungendo il percorso alla cartella con i binari installati globalmente da Composer alla variabile PATH in Jenkins config (Manage Jenkins -> Configure System -> Global properties -> Environment variables: name=PATH, value=$PATH:$COMPOSER_HOME/vendor/bin/):

enter image description here

(A causa di permessi che spostavano COMPOSER_HOME all'esterno della directory /root era necessario anche un altro, accessibile anche per Jenkins, era anche necessario).

Ora ho provato lo stesso su Windows, ma non funziona. Quindi, forse sto solo impostando il PATH sbagliato. Quello che ho provato:

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

Come impostare la variabile d'ambiente PATH nelle configurazioni di Jenkins correttamente funzionanti su Windows?

14
automatix

Il problema che ho avuto non è stato causato da una configurazione Path errata. %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin è corretto.

enter image description here

16
automatix

Deve essere "Path", non "PATH".

Jenkins tratta questa variabile speciale in un modo sensibile al maiuscolo/minuscolo e solo "Percorso" viene riconosciuto come variabile del percorso. "PATH" guarda a jenkins come una variabile d'ambiente generica, anche su Windows.

17
Roderick

Se vuoi impostarlo localmente per il rispettivo lavoro, prova questo nel passaggio 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

Questo approccio funziona per qualsiasi tipo di comando che si desidera eseguire. Basta aggiungere la rispettiva variabile ambientale alla variabile Path localmente come mostrato sopra.

2
Sri7

Avevo un requisito simile a personalizzare la variabile Path su uno slave Windows con un master Windows Jenkins. Non volevo creare una variabile di ambiente globale Jenkins e volevo che questa variabile fosse specifica per un particolare nodo/agente di Windows.

Ecco cosa ho fatto:

1) Creata una variabile d'ambiente come mostrato di seguito in Nodi -> WindowsNode -> Configura:

 Nodes -> WindowsNode -> Configure

2) Disconnesso il mio nodo Jenkins.

3) Riavviato il mio sistema Jenkins direttamente sullo slave.

4) Testato facendo clic su Nodi -> WindowsNode -> Informazioni di sistema e visto la nuova variabile di ambiente assegnata al nodo:

 enter image description here

5) Quindi utilizzato in un lavoro di Jenkins che sarebbe eseguito sullo slave/agent di Windows aggiungendo il comando di sotto a una fase di compilazione di Execute Windows Batch Command:

git --version

1
joshm

non confondere circa% PATH% vs $ PATH nel campo Valore. Mentre% PATH% è la sintassi corretta per i nodi Windows, dovresti usare/foo/bar: $ PATH per estendere PATH sui nodi unix

1
pocketrocket
  • Per aggiungere il percorso per i nodi slave, come la variabile env home. 

  • Può essere fatto directory dalla configurazione Slave nide. 

  • Aprire le impostazioni di configurazione per qualsiasi nodo slave, aggiungere informazioni valide per l'ambiente. 

  • Ad esempio per l'impostazione di HOME basta aggiungere il nome e la posizione della directory home.

0
Priyanka Rawat