TeamCity构建代理从何处获取其路径环境?

eri*_*len 37 teamcity continuous-integration environment-variables psake teamcity-6

我正在尝试设置TeamCity来构建我的项目,但是我的psake buildscript失败了,其原因被缩小到无法找到git可执行文件,这应该是在路径上.当我启动PowerShell并自己执行该操作时,一切正常.

Path环境变量的内容(如"Windows环境变量"对话框中的"系统变量"列表以及注册表中所示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
Run Code Online (Sandbox Code Playgroud)

但是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
Run Code Online (Sandbox Code Playgroud)

我重新启动了计算机(多次),这无济于事.

为什么TeamCity构建代理的PATH变量与系统默认变量不同,我该如何解决?

Sea*_*ean 19

我遇到了同样的问题,只需要重新启动Team City Build Agent Service来获取对PATH变量的更改.


moc*_*dev 14

您可以通过在Mac OS和Linux上添加具有以下值的名为"env.PATH"的构建参数来扩展构建代理的路径.

%env.PATH%:/my/path
Run Code Online (Sandbox Code Playgroud)

在Windows上使用";" 而不是":"作为路径分隔符.

您还可以将以下内容添加到构建代理程序安装目录中的conf/buildAgent.properties.

env.PATH=%env.PATH%:/my/path
Run Code Online (Sandbox Code Playgroud)

(文件底部有一条注释,显示如何设置环境变量.)


yve*_*lem 9

以前的一些答案是正确的,但是缺少细节(并且花了一些时间来真正理解它们) - 默认代理程序采用其环境变量的地方对我来说并不清楚:所以这里有一种方法可以在代理配置中清楚地修复它们.

编辑TeamCity/buildAgent/conf/buildAgent.properties文件env.PATH=/usr/whatever将起到作用.文档上有一个小提示.

有一次,你已经编辑了那个文件,你可以检查用户界面,Agents > Default Agent > Agent Parameters > Environment Variables因为它们已被更新(小心,想到,这些变量只在连接代理时在UI中刷新;如果它已断开连接,UI会显示以前的值).


tis*_*hma 4

解决方案位于“构建配置/6 构建参数”中,您可以在其中覆盖 env.[ANYTHING] 变量。

PS:很遗憾听到这个消息。我仍然决心通过 TeamCity 取得成功。