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/
):
(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?
Il problema che ho avuto non è stato causato da una configurazione Path
errata. %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin
è corretto.
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.
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.
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:
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:
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
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
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.