Где TeamCity получает значение для% system.teamcity.build.workingDir%

У нас есть TeamCity и на странице [Runner: Command Line] страницы [Build Configuration] есть поле [Command Parameter] %system.teamcity.build.workingDir%

Мой вопрос в том, где TeamCity получает это значение, как при просмотре свойств системы агента, я не вижу, чтобы он был установлен. %system.teamcity.build.workingDir% не отображается в списке [System Properties] или [Environment Variables]

Ответы

Ответ 1

Где вы смотрите? Он указан вместе с другими системными свойствами:

enter image description here

@Snahider - сборка в любой точке выполняется только на одном агенте. Таким образом, %system.teamcity.build.workingDir% будет установлен в текущую рабочую директорию. Это не то же самое, что %system.agent.work.dir%, который является родителем каталога checkout для каждой сборки.

Например, если у вас установлен ваш агент в C:\BuildAgent, %system.agent.work.dir% будет C:\BuildAgent\work, тогда как %system.teamcity.build.workingDir% будет чем-то вроде C:\BuildAgent\work\8b0fde2bf2d2efc0, если вы не указали каталог оформления в настройках VCS или если у вас есть установите его, чтобы сказать wd он будет C:\BuildAgent\work\wd

Еще одна вещь заключается в том, что если на шаге шага изменения вы меняете рабочий каталог, чтобы сказать Examples, %system.teamcity.build.workingDir% будет, как следует из названия, указать на то, что - C:\BuildAgent\work\wd\Examples So %system.teamcity.build.workingDir% может измениться в зависимости от того, что происходит, а %system.agent.work.dir% останется таким же для агента. Надеюсь, это объясняет разницу.

Ответ 2

% system.teamcity.build.workingDir% документация говорит:

Рабочий каталог сборки - это каталог, установленный как текущий для процесса сборки. По умолчанию это тот же каталог, что и каталог сборки. Если сборка script должна выполняться из местоположения, отличного от каталога выписки, вы можете явно указать его с помощью поля "Рабочая папка" на странице настроек бегуна сборки.

Если у вас есть WebServer и только у агента на том же компьютере, что каталог такой же, как % system.agent.work.dir%

http://confluence.jetbrains.net/display/TCD5/Agent+Work+Directory

В моем окне окна C:/Users/[пользователь]/. BuildAgent/work.

Если у вас несколько агентов, я не знаю, какой будет каталог. Я рекомендую использовать% system.agent.work.dir% вместо% system.teamcity.build.workingDir%.

Вы можете проверить значение любой переменной, используя ту же "сборку командной строки": записать переменную в вход "Параметры команды" и запустить сборку, вы можете увидеть реальное значение в журналах при завершении сборки.