2011-05-13 90 views
14

我们的TeamCity并在[Build Configuration]页的[Runner: Command Line],有一个​​场%system.teamcity.build.workingDir%哪里的TeamCity获得值%system.teamcity.build.workingDir%

我的问题是哪里的TeamCity得到这个值从当我看到代理的系统属性时,我没有看到它已被设置。 %system.teamcity.build.workingDir%不会出现在[System Properties][Environment Variables]

回答

2

%system.teamcity.build.workingDir%的文件清单说:

构建工作目录的目录设置为当前构建过程。默认情况下,这是与Build Checkout Directory相同的目录。 如果构建脚本需要从比检出目录以外的位置运行,那么你就可以明确使用构建亚军的设置页面上的工作目录字段中指定它。

如果你的网络服务器,只有在代理在同一台机器上该目录是一样的%system.agent.work.dir%

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

在我的窗户框是C:/用户/ [用户]/BuildAgent /工作

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

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

+1

你引用的文件,这是这么说的很多东西,但还是敢说'%system.teamcity.build.workingDir%'和'%system.agent.work.dir%'是一样的! – manojlds 2011-05-17 05:01:28

+0

@manojlds - 你说得对。我的评论是基于默认安装的情况。另外我忘了包含临时目录。正确的句子应该是:%system.teamcity.build.workingDir%=%system.agent.work.dir%/ [tempdir](对于默认安装)。 – Snahider 2011-05-17 05:55:32

+0

再次,不正确。取决于检出目录是什么以及是否设置了构建步骤的工作目录。默认安装并不意味着构建的默认配置。 – manojlds 2011-05-17 05:59:14

28

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

enter image description here

@Snahider - 一个构建在任何时候只能在一个代理运行。所以%system.teamcity.build.workingDir%将被设置为当前版本的工作目录。它与%system.agent.work.dir%不同,它是每个版本的结帐目录的父级。

例如,如果你已经安装在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%将保持s ame代理人。希望这解释了这种差异。

+1

您从哪里获得系统属性列表? – user3174075 2016-02-24 17:57:34

+0

@ user3174075,我认为[这里](https://confluence.jetbrains.com/display/TCD10/Predefined+Build+Parameters)。 – 2017-03-15 08:46:42