2013-08-20 92 views
4

我有一個掛在輔助構建步驟上的團隊城市8.0.3(構建27540)的問題,該步驟會將更改推送到遠程存儲庫。我無法找到任何能夠讓我洞察問題的信息。團隊城市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 *** 

這裏是GIT中推命令行步驟:

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

如果我拖放到團隊城市工作目錄,我注意到提交已經完成,但尚未推送。如果我嘗試git push,它沒有任何問題。

如果能提供幫助,我很樂意提供進一步的細節。

回答

6

TeamCity使用cmd.exe來運行你的git命令。正如this stackoverflow answer所說,Git依賴於shell腳本,這在cmd中不可用。

嘗試調用msysgit的bash以使用所需的git命令執行bash腳本。

+0

謝謝尼基塔,那就是問題所在。當我考慮它時,它是有道理的,但其他運行成功的git命令卻把我拋棄了。 –

+0

hi nikita。你能否提供確切的命令,因爲它不適合我。thx – Mantzas

+1

@Mantzas,它應該看起來像這樣(僅作爲一個例子,我現在沒有機會檢查它): '「C:\ Program Files文件(x86)\ Git \ bin \ bash.exe」 - c「git add。; git commit -m'blah-blah-blah'; git push」' –

2

正如上面的評論也表明,根本原因可能是git要求輸入密碼,這是TeamCity從不提供的。

嘗試配置git,以便它不要求輸入密碼(例如,設置ssh鍵/使用wincred/git-credential-winstore)。

或者,如果你使用GitHub上,並很高興地把你的密碼的URL(as suggested by this post):

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

我有這個問題,但是我用的是SSH我不能指定用戶名和密碼在命令中。我知道構建掛起,因爲它正在等待用戶提示。

我注意到,即使我的HOME系統環境變量設置爲.ssh文件夾所在的位置,當TeamCity運行git push命令時,它並不出現在SET列表中。

因此我改變了腳本重置HOME變量:

SET HOME=D:\ 
git push 

...其中d:\是你的.ssh文件夾包含公鑰/私鑰哪裏。