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/
):
(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?
Le problème que je rencontrais n'était pas dû à une mauvaise configuration Path
. %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin
est correct.
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.
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.
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:
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:
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
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.
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.