32

내 프로젝트를 빌드하기 위해 TeamCity를 설정하려고하지만 내 psake buildscript가 실패합니다. 그 이유는 경로 상에 있어야 할 git 실행 파일을 찾을 수 없다는 이유 때문입니다. PowerShell을 시작하고 직접 실행하면 모든 것이 잘 동작합니다.TeamCity 빌드 에이전트는 어디에서 경로 환경을 가져 옵니까?

아직 인 TeamCity는 env.Path는 말한다 (윈도우 환경 변수 대화 상자에서 시스템 변수 목록과 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path에서 레지스트리 참조) 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 

한다 단지

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 

나는 여러 가지 도움이되는 컴퓨터를 여러 번 다시 시작했습니다.

TeamCity 빌드 에이전트의 PATH 변수가 시스템 기본값과 다른 이유는 무엇입니까?

+0

아직 합리적인 해결책이 있습니까? – tishma

+1

내가 추측하기는 싫지만 Windows 서비스로 실행하는 경우 서비스를 실행하는 사용자가 환경을 사용하게됩니다. – tishma

+0

아니요, 해결책 없음. 나는 TeamCity를 버리고 대신 CruiseControl.net을 사용합니다. – erikkallen

답변

4

솔루션은 환경 설정 빌드/6 빌드 매개 변수에서 env. [ANYTHING] 변수를 재정의 할 수 있습니다.

P. 그걸 듣기 위해 부르세요. 나는 여전히 TeamCity와 함께 성공하기로 결정했습니다.

4

내 솔루션, 티 쉬마의 의견에 의해 암시 사용자에 대한 Path 환경 변수를 수정하고 다시 시작했다 Team City Build Agent Service

편집 : This bug

15

내가 다 퉜다 인 TeamCity 7.1으로 수정되었습니다 이 동일한 문제는 PATH 변수에 대한 변경 사항을 받기 위해 Team City Build Agent Service를 다시 시작해야했습니다.

+2

Arghhhhhhhhhh! http://stackoverflow.com/q/23204893/106261 – NimChimpsky

+0

여기에 있습니다. 8.0.5를 사용하고 에이전트를 다시 시작하여 변경 사항을 가져와야합니다. –

12

Mac OS 및 Linux에서 다음 값을 사용하여 "env.PATH"라는 빌드 매개 변수를 추가하여 빌드 에이전트의 경로를 확장 할 수 있습니다.

%env.PATH%:/my/path 

Windows의 경우 ";"를 사용하십시오. 대신 ":"를 경로 분리 문자로 사용하십시오.

또한 빌드 에이전트 설치 디렉토리의 conf/buildAgent.properties에 다음을 추가 할 수 있습니다.

env.PATH=%env.PATH%:/my/path 

는 (환경 바르 설정하는 방법을 보여줍니다 파일의 하단에 댓글이 있습니다.)

+1

경고 :'% env.PATH %'가 다음과 같은 경우를 제외하고'env.PATH = % env.PATH % :/my/path'는 리터럴''% env.PATH % :/my/path "' 이미 TC에서 이미 정의되었습니다. 그러나'% env.PATH %'는 % PATH %;을 (를) 사용하여 기존 경로에 추가하려는 것과 같지 않습니다. 그렇게하기 위해서는 퍼센트가 이스케이프되도록 %% PATH %%를 사용해야 할 수도 있습니다 ... – Schneider

6

일부 이전의 대답은 정확하지만, 세부 사항을 부족 (정말 좀 시간이 걸릴 그것들을 이해하십시오.) - Default Agent가 환경 변수를 사용하는 곳이 나에게 명확하지 않은 경우 : 에이전트 구성에서 에이전트를 명확하게 수정하는 방법이 있습니다.

TeamCity/buildAgent/conf/buildAgent.properties 파일을 env.PATH=/usr/whatever으로 편집하면 트릭을 수행하게됩니다. 문서에 a small hint이 있습니다.

일단이 파일을 편집했다면 UI가 업데이트 된 것을 Agents > Default Agent > Agent Parameters > Environment Variables에서 확인할 수 있습니다 (주의해서 생각해보십시오. 해당 변수는 에이전트가 연결될 때 UI에서 새로 고쳐지며 연결이 끊어지면 UI는 이전 값을 표시합니다).

관련 문제