Откуда агент сборки 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

Другие вопросы по тегам