Откуда агент сборки TeamCity получает свою среду пути?
Я пытаюсь настроить TeamCity для сборки моего проекта, но мой psake buildscript завершается неудачно, причина сужается из-за невозможности найти исполняемый файл git, который должен быть в пути. Когда я запускаю PowerShell и выполняю его самостоятельно, все работает нормально.
Содержимое переменной среды Path (как показано в списке системных переменных в диалоговом окне Windows Environment Variables), а также реестр в HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path
) является
%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
пока TeamCity говорит, что его env.Path просто
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
Я перезагрузил компьютер (несколько раз), который не помогает вообще.
Почему переменная PATH агента сборки TeamCity отличается от системной по умолчанию, и как я могу это исправить?
5 ответов
Вы можете расширить путь для агента сборки, добавив параметр сборки с именем "env.PATH" со следующим значением в Mac OS и Linux.
%env.PATH%:/my/path
В Windows используйте ";" вместо ":" в качестве разделителя пути.
Вы также можете добавить следующее в файл conf/buildAgent.properties в каталоге установки агента сборки.
env.PATH=%env.PATH%:/my/path
(Внизу файла есть комментарий, который показывает, как установить переменные среды.)
Я столкнулся с этой же проблемой, и мне нужно было только перезапустить службу агента Team City Build, чтобы получить изменения в переменной PATH.
Некоторые предыдущие ответы верны, но в них отсутствуют детали (и мне нужно некоторое время, чтобы по-настоящему их понять). Где Агент по умолчанию берет свои переменные окружения, мне неясно: так что вот способ четко их исправить в конфигурации агента.
Редактирование TeamCity/buildAgent/conf/buildAgent.properties
файл с env.PATH=/usr/whatever
сделает свое дело. В документации есть небольшой намек на это.
После того, как вы отредактировали этот файл, вы можете проверить его в Agents > Default Agent > Agent Parameters > Environment Variables
что они были обновлены (подумайте, эти переменные обновляются только в пользовательском интерфейсе, когда агент подключен; если он отключен, пользовательский интерфейс отображает предыдущие значения).
Решение находится в Build Configuration/6 Build Parameters, где вы можете переопределить переменные env.[ANYTHING].
PS Жаль это слышать. Я все еще полон решимости добиться успеха с TeamCity.
Мое решение, на которое намекает комментарий Тишмы, состояло в том, чтобы изменить Path
переменная среды для пользователя и перезапустите Team City Build Agent Service
Редактировать: эта ошибка была исправлена с TeamCity 7.1