我们有TeamCity,在[Runner: Command Line]
页面的[Build Configuration]
上有一个[Command Parameter]
字段%system.teamcity.build.workingDir%
我的问题是TeamCity从哪里获取此值,因为当我查看代理的系统属性时,我看不到它已被设置。
%system.teamcity.build.workingDir%
未显示在[System Properties]
或[Environment Variables]
答案 0 :(得分:30)
@Snahider - 任何一点的构建仅在一个代理上运行。因此%system.teamcity.build.workingDir%
将被设置为当前版本的工作目录。它与%system.agent.work.dir%
不同,C:\BuildAgent
是每个构建的checkout目录的父级。
例如,如果您在[{1}}中安装了代理,则%system.agent.work.dir%
将为C:\BuildAgent\work
,而%system.teamcity.build.workingDir%
如果您未指定C:\BuildAgent\work\8b0fde2bf2d2efc0
则为wd
VCS设置中的结帐目录,或者如果您已设置,请说C:\BuildAgent\work\wd
它将是Examples
还有一件事是,如果在构建步骤中更改工作目录,要说%system.teamcity.build.workingDir%
,C:\BuildAgent\work\wd\Examples
将顾名思义指出 - %system.teamcity.build.workingDir%
因此%system.agent.work.dir%
可能会根据发生的情况发生变化,而代理商{{1}}将保持不变。希望这能解释不同之处。
答案 1 :(得分:2)
%system.teamcity.build.workingDir%文档说:
构建工作目录是为构建过程设置为当前的目录。默认情况下,此目录与Build Checkout Directory相同。 如果构建脚本需要从checkout目录以外的位置运行,那么您可以使用构建运行器的设置页面上的Working Directory字段显式指定它。
如果您拥有WebServer且仅在同一台计算机上的Agent上,该目录与%system.agent.work.dir%
相同http://confluence.jetbrains.net/display/TCD5/Agent+Work+Directory
在我的Windows框中 C:/ Users / [user] /。BuildAgent / work 。
如果您有多个代理,我不知道目录是什么。我建议您使用%system.agent.work.dir%而不是%system.teamcity.build.workingDir%。
您可以使用相同的“命令行构建”测试任何变量的值:在“命令参数”输入中编写变量并运行构建,您可以在构建完成时看到日志中的实际值。 / p>