TeamCity在哪里获得%system.teamcity.build.workingDir%的值

Eal*_*sJS 16 parameters teamcity continuous-integration command

我们有TeamCity的和对[Runner: Command Line]的的[Build Configuration]页面,有一个[Command Parameter]%system.teamcity.build.workingDir%

我的问题是TeamCity从哪里获取此值,因为当我查看代理的系统属性时,我没有看到它已被设置. %system.teamcity.build.workingDir%没有出现在[System Properties]或列表中[Environment Variables]

man*_*lds 33

你在看哪里?它与其他系统属性一起列出:

在此输入图像描述

@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那么%system.teamcity.build.workingDir%可以根据发生的情况而改变,而%system.agent.work.dir%对于代理则保持相同.希望这能解释不同之处.

  • 您从哪里获得系统属性列表? (2认同)

小智 3

%system.teamcity.build.workingDir%文档说:

构建工作目录是构建过程中设置为当前的目录。默认情况下,该目录与构建签出目录相同。如果构建脚本需要从检出目录以外的位置运行,那么您可以使用构建运行程序的设置页面上的工作目录字段显式指定它。

如果您有 Web 服务器且仅在同一台计算机上的代理上,则该目录与%system.agent.work.dir%相同

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

在我的窗口框中是C:/Users/[user]/.BuildAgent/work

如果您有多个代理,我不知道目录是什么。我建议您使用 %system.agent.work.dir% 而不是 %system.teamcity.build.workingDir%。

您可以使用相同的“命令行构建”测试任何变量的值:在“命令参数”输入中写入变量并运行构建,构建完成后您可以在日志中看到真实值。