web-dev-qa-db-fra.com

Comment définir la variable d'environnement PATH dans la configuration de Jenkins sous Windows?

Lorsque j'exécute mon processus de construction sous Windows Server 2008, le message d'erreur suivant s'affiche:

Impossible d'exécuter le programme "foo": CreateProcess: error = 2, le système ne peut pas trouver le fichier spécifié

J'ai déjà eu un problème similaire sur Ubuntu Server et je l'ai résolu en ajoutant le chemin du dossier contenant les fichiers binaires installés globalement par Composer à la variable PATH dans la configuration Jenkins (Manage Jenkins -> Configure System -> Global properties -> Environment variables: name=PATH, value=$PATH:$COMPOSER_HOME/vendor/bin/):

enter image description here

(En raison d'une autorisation, déplacer COMPOSER_HOME en dehors du répertoire /root était également nécessaire, mais un autre répertoire accessible pour Jenkins était également nécessaire.)

Maintenant, j'ai essayé la même chose sur Windows, mais cela ne fonctionne pas. Alors peut-être que je mets juste la PATH mal. Ce que j'ai essayé

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

Comment définir la variable d'environnement PATH dans les configurations Jenkins fonctionnant correctement sous Windows?

14
automatix

Le problème que je rencontrais n'était pas dû à une mauvaise configuration Path. %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin est correct.

enter image description here

16
automatix

Ce doit être "Path", pas "PATH".

Jenkins traite cette variable spéciale de manière sensible à la casse et seule "Path" est reconnue comme étant la variable de chemin. "PATH" ressemble à une variable d’environnement générique, même sous Windows.

17
Roderick

Si vous souhaitez le définir localement pour le travail correspondant, essayez ceci à l'étape 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

Cette approche fonctionne pour tout type de commande que vous souhaitez exécuter. Ajoutez simplement la variable environnementale correspondante à la variable Path localement, comme indiqué ci-dessus.

2
Sri7

J'avais le même besoin de personnaliser la variable Path sur un esclave Windows avec un maître Windows Jenkins. Je ne voulais pas créer de variable d'environnement global Jenkins et voulais que cette variable soit spécifique à un agent/noeud Windows particulier.

Voici ce que j'ai fait:

1) Création d'une variable d'environnement comme indiqué ci-dessous dans l'écran Nodes -> WindowsNode -> Configure:

 Nodes -> WindowsNode -> Configure

2) Déconnecté mon noeud Jenkins.

3) Redémarrez mon processus système Jenkins directement sur l'esclave.

4) Testez-le en cliquant sur Nodes -> WindowsNode -> Informations système et voyez la nouvelle variable d’environnement affectée au nœud:

 enter image description here

5) Ensuite, il a été utilisé dans un travail Jenkins exécuté sur l’agent/agent Windows en ajoutant la commande ci-dessous à une étape de construction de la commande Exécuter Windows Batch:

git --version

1
joshm

ne vous trompez pas entre% PATH% et $ PATH dans le champ Valeur. Bien que% PATH% soit la syntaxe correcte pour les nœuds Windows, vous devez utiliser/foo/bar: $ PATH pour étendre PATH sur des nœuds unix.

1
pocketrocket
  • Pour ajouter un chemin pour les nœuds esclaves, comme une variable d'environnement home. 

  • Il peut s'agir d'un répertoire créé à partir de la configuration Slave Nide. 

  • Ouvrez le paramètre de configuration pour n'importe quel nœud esclave, ajoutez des informations env vables. 

  • Par exemple, pour définir HOME, ajoutez simplement le nom et l'emplacement du répertoire de base.

0
Priyanka Rawat