我正试图设置TeamCity来构建我的项目,但我的psake构建脚本失败了,原因被缩小到无法找到git可执行文件,该文件应该在路径上。当我启动PowerShell并自己执行时,一切都很好。
Path环境变量的内容(如窗口"环境变量"对话框中的"系统变量"列表以及HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerEnvironmentPath
处的注册表所示)为
%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;c:Program Files (x86)Microsoft SQL Server90Toolsbinn;c:Program Files (x86)Microsoft SQL Server100ToolsBinn;c:Program FilesMicrosoft SQL Server100ToolsBinn;c:Program FilesMicrosoft SQL Server100DTSBinn;c:Program Files (x86)Microsoft SQL Server100ToolsBinnVSShellCommon7IDE;c:Program Files (x86)Microsoft SQL Server100DTSBinn;C:Program Files (x86)Gitcmd
然而TeamCity表示其环境。路径只是
C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;c:Program Files (x86)Microsoft SQL Server90Toolsbinn;C:WindowsSystem32WindowsPowerShellv1.0
我重新启动了电脑(多次),但没有任何帮助。
为什么TeamCity构建代理的PATH变量与系统默认值不同,我该如何修复它?
您可以通过在Mac OS和Linux上添加名为"env.path"且具有以下值的构建参数来扩展构建代理的路径。
%env.PATH%:/my/path
在Windows上,使用";"而不是":"作为路径分隔符。
您还可以将以下内容添加到构建代理安装目录中的conf/buildAgent.properties中。
env.PATH=%env.PATH%:/my/path
(文件底部有一条注释,显示了如何设置环境变量。)
我遇到了同样的问题,只需要重新启动Team City Build Agent Service来获取对PATH变量的更改。
以前的一些答案是正确的,但缺乏详细信息(我需要一些时间才能真正理解它们)--我不清楚Default Agent将其环境变量带到哪里:所以这里有一种方法可以在Agent配置中清楚地修复它们
用env.PATH=/usr/whatever
编辑TeamCity/buildAgent/conf/buildAgent.properties
文件就可以了。文档对此有一点提示。
一旦编辑了该文件,就可以在Agents > Default Agent > Agent Parameters > Environment Variables
中的UI中检查它们是否已更新(请注意,这些变量只有在连接代理时才会在UI中刷新;如果断开连接,UI将显示以前的值)。
解决方案位于Build Configuration/6 Build Parameters中,您可以在其中覆盖env。[ANYTHING]变量。
p.S.很高兴听到。我仍然决心在TeamCity取得成功。
tishma的评论暗示了我的解决方案,即修改用户的Path
环境变量并重新启动Team City Build Agent Service
编辑:自TeamCity 7.1