2013-08-20 4 views
4

Team City 8.0.3 (빌드 27540)과 관련된 문제가 원격 저장소의 변경 사항을 푸시하는 보조 빌드 단계에 걸려있다. 잘못된 정보를 파악할 수있는 정보를 찾을 수 없습니다.Team City git push 빌드가 응답하지 않는다

VCS는 SSH를 통해 기본 개인 키를 사용하여 설정되며 체크 아웃 모드는 자동으로 에이전트에서 설정됩니다.

소스가 체크 아웃 규칙을 통해 "repositoryPath"로 체크인됩니다.

빌드 단계는 "repositoryPath"의 작업 디렉토리에서 git 명령을 실행합니다.

Step 2/2: Commit dlls (Command Line) (running for 1m:09s) 
[16:46:51][Step 2/2] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script5045114249582743499.cmd 
[16:46:51][Step 2/2] in directory: C:\TeamCity\buildAgent\work\8df15579b05cdb68\repositoryPath 
[16:46:51][Step 2/2] [master 9fa24ba] Teamcity update 
[16:46:51][Step 2/2] 1 file changed, 0 insertions(+), 0 deletions(-) 
*** HANGS HERE *** 
여기

이 자식 푸시 명령 줄 단계 : 여기

은 커밋 실행하는 두 번째 단계에서 빌드 로그이다 나는 떨어질 경우

"%env.TEAMCITY_GIT_PATH%" add . 
"%env.TEAMCITY_GIT_PATH%" commit -m "Teamcity update" 
"%env.TEAMCITY_GIT_PATH%" push 

Team City 작업 디렉토리에서 커밋이 수행되었음을 알지만 밀어 넣지 않았습니다. git push을 시도하면 문제없이 작동합니다.

도움이 될 경우 추가 세부 정보를 제공해 드리겠습니다.

답변

6

TeamCity는 cmd.exe를 사용하여 git 명령을 실행합니다. this stackoverflow answer에 따르면 Git은 쉘 스크립팅을 사용합니다.이 스크립트는 cmd 내에서 사용할 수 없습니다.

필수 git 명령을 사용하여 bash 스크립트를 실행하려면 msysgit의 bash를 호출하십시오.

+0

감사합니다 니키타, 그게 문제였습니다. 그것에 대해 생각할 때 그것은 의미가 있지만, 성공적으로 실행되는 다른 자식 명령을 내게 던져 버렸습니다. –

+0

안녕하세요. 그것이 나를 위해 일하지 않았기 때문에 당신은 정확한 명령을 제공 할 수 있습니까?thx – Mantzas

+1

@Mantzas, 이것은 (다음 예와 같이 보일 것입니다 : ) "C : \ Program Files (x86) \ Git \ bin \ bash.exe"- C "git add.; git commit -m 'blah-blah-blah'; git push"' –

2

위의 설명에서도 알 수 있듯이 근본 원인은 아마도 TeamCity에서 제공하지 않은 암호를 묻는 것일 수 있습니다.

암호를 요구하지 않도록 설정하십시오 (예 : ssh 키 설정/wincred/git-credential-winstore 사용).

아니면 GitHub의를 사용하고 있습니다하는 경우의 URL (as suggested by this post)에 암호를 넣어 드리겠습니다 :

git push https://username:[email protected]/username/repository.git 
1

나는이 문제를 가지고,하지만 난 SSH를 사용하고 있었던 나는이 지정되지 수 사용자 이름과 암호를 입력하십시오. 사용자 프롬프트를 기다리고 있었기 때문에 빌드가 걸려 있다는 것을 알고있었습니다.

.ssh 폴더가있는 위치로 HOME 시스템 환경 변수가 설정되어 있어도 TeamCity가 git push 명령을 실행했을 때 SET 목록에없는 것으로 나타났습니다.

은 결과적으로 나는 HOME 변수를 재설정 스크립트를 변경 :

SET HOME=D:\ 
git push 

... 여기서 D 다음 ssh 접속 폴더가 공개/개인 키를 포함된다 \입니다.

관련 문제