web-dev-qa-db-fra.com

D'où un agent de génération TeamCity obtient-il son environnement de chemin?

J'essaie de configurer TeamCity pour construire mon projet, mais mon pseudo buildscript échoue, la raison étant limitée à son incapacité à trouver l'exécutable git, qui est censé être sur le chemin. Lorsque je démarre un PowerShell et exécute la chose par moi-même, tout fonctionne bien.

Le contenu de la variable d'environnement Path (comme indiqué dans la liste Variables système de la boîte de dialogue Variables d'environnement de Windows, ainsi que le registre à HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path) est

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Git\cmd

pourtant TeamCity dit que son env.Path est juste

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Windows\System32\WindowsPowerShell\v1.0

J'ai redémarré l'ordinateur (plusieurs fois), ce qui n'aide en rien.

Pourquoi la variable PATH de l'agent de construction TeamCity est-elle différente de la valeur par défaut du système et comment puis-je la corriger?

38
erikkallen

J'ai rencontré ce même problème et je n'avais besoin que de redémarrer le service Team City Build Agent pour récupérer les modifications apportées à la variable PATH.

19
Sean

Vous pouvez développer le chemin d'accès d'un agent de génération en ajoutant un paramètre de génération nommé "env.PATH" avec la valeur suivante sur Mac OS et Linux.

%env.PATH%:/my/path

Sous Windows, utilisez ";" au lieu de ":" comme délimiteur de chemin.

Vous pouvez également ajouter les éléments suivants à conf/buildAgent.properties dans le répertoire d'installation de votre agent de génération.

env.PATH=%env.PATH%:/my/path

(Il y a un commentaire au bas du fichier qui montre comment définir les variables d'environnement.)

15
mockaroodev

Certaines réponses précédentes sont correctes, mais manquent de détails (et me prennent un peu de temps pour vraiment les comprendre) - Où l'agent par défaut prend ses variables d'environnement n'est pas clair pour moi: voici donc un moyen pour les corriger clairement dans la configuration de l'agent.

Modification du TeamCity/buildAgent/conf/buildAgent.properties fichier avec env.PATH=/usr/whatever fera l'affaire. La documentation a n petit indice à ce sujet.

Une fois que vous avez modifié ce fichier, vous pouvez archiver l'interface utilisateur, dans Agents > Default Agent > Agent Parameters > Environment Variables qu'ils ont été mis à jour (attention, réfléchis, ces variables ne sont actualisées dans l'interface utilisateur que lorsque l'agent est connecté; s'il est déconnecté, l'interface utilisateur affiche les valeurs précédentes).

9
yves amsellem

La solution se trouve dans Build Configuration/6 Build Parameters où vous pouvez remplacer les variables env. [ANYTHING].

P.S. Sry pour entendre cela. Je suis toujours déterminé à réussir avec TeamCity.

4
tishma

Ma solution, suggérée par le commentaire de tishma, a été de modifier la variable d'environnement Path pour l'utilisateur et de redémarrer le Team City Build Agent Service

Edit: Ce bug a été corrigé depuis TeamCity 7.1

4
Patrick McDonald