[英]Git push from TeamCity 9.0.3 build
我正在嘗試進行TeamCity構建配置,以檢出git存儲庫,對存儲庫中的文本文件進行少量更改,然后將更改推回存儲庫。 我真想讓git push命令從Ubuntu構建代理工作。
我已經嘗試了ssh身份驗證和https身份驗證:
使用HTTPS,我會收到此錯誤:
could not read Username for 'https://github.com': No such device or address
所以我嘗試了:
git config user.name "<my username>"
git config user.email "<my email>"
同樣的錯誤。
使用SSH,我得到這個錯誤:
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Host key verification failed.
fatal: Could not read from remote repository.
我試圖在工作目錄中寫入密鑰,並讓git像這樣使用它:
cat << EOF > github.key
%secure:teamcity.password.chambm ssh key%
EOF
chmod 600 github.key
GIT_SSH_COMMAND='ssh -i github.key' git push origin master
shred github.key
同樣的錯誤。
據我所知, /etc/ssh_config
或/etc/gitconfig
中沒有異常設置,並且~/.ssh/config
不存在。 為什么這么難? 為什么git調用ssh_askpass,即使我給它使用了私鑰?
git --version
是2.7.4
環境變量:
export BUILD_NUMBER='44'
export BUILD_VCS_NUMBER='50e0d54d7045fcf0bd6949a06d82ac2f118bc5d9'
export BUILD_VCS_NUMBER_ProteoWizard_HttpsGithubComBiocondaBiocondaRecipes='50e0d54d7045fcf0bd6949a06d82ac2f118bc5d9'
export DISPLAY=':3'
export FIREFOX38='/tcuser/apps/firefox38/firefox'
export FIREFOX45='/tcuser/apps/firefox45/firefox'
export FIREFOX52='/tcuser/apps/firefox52/firefox'
export FIREFOX_HOME='/usr/bin/firefox'
export HOME='/home/tcuser'
export JAVA_HOME='/usr/lib/jvm/default-java'
export JDK_17='/usr/lib/jvm/java-7-sun'
export JDK_18='/usr/lib/jvm/java-8-sun'
export JRE_HOME='/usr/lib/jvm/default-java'
export LANG='en_US.UTF-8'
export LOGNAME='tcuser'
export MAIL='/var/mail/tcuser'
export NUMBER_OF_CORES='4'
export OLDPWD='/tcuser/apps/teamcity/agent/bin'
export PATH='/home/tcuser/bin:/home/tcuser/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin'
export PERL_HOME='/usr/bin'
export PWD='/mnt/teamcity/agent/work/2cc04074d294b6fa'
export PYTHON2='/usr/bin/python'
export PYTHON3='/usr/bin/python3'
export R_HOME='/tcuser/apps/R/default'
export SHELL='/bin/bash'
export SHLVL='1'
export TEAMCITY_AGENT_OPTS='-Duser.timezone=America/Los_Angeles'
export TEAMCITY_BUILDCONF_NAME='Bumbershoot update bioconda'
export TEAMCITY_BUILD_PROPERTIES_FILE='/mnt/teamcity/agent/temp/buildTmp/teamcity.build7482307983791518712.properties'
export TEAMCITY_CAPTURE_ENV='"/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java" -jar "/tcuser/apps/teamcity/agent/plugins/environment-fetcher/bin/env-fetcher.jar"'
export TEAMCITY_GIT_PATH='/usr/bin/git'
export TEAMCITY_PROCESS_FLOW_ID='1039593210152446'
export TEAMCITY_PROCESS_PARENT_FLOW_ID=''
export TEAMCITY_PROJECT_NAME='Bioconda'
export TEAMCITY_VERSION='9.0.3 (build 32334)'
export TEMP='/mnt/teamcity/agent/temp/buildTmp'
export TMP='/mnt/teamcity/agent/temp/buildTmp'
export TMPDIR='/mnt/teamcity/agent/temp/buildTmp'
export TZ='PST8PDT'
export USER='tcuser'
export XDG_RUNTIME_DIR='/run/user/1002'
export XDG_SESSION_ID='c8'
關於https,您需要:
確保網址是
https://<username>@github.com/<username>/arepo
有一個憑證管理器來緩存密碼
git config -l credential.helper
請參閱“ Git工具-憑據存儲 ”和此設置 。
然后手動嘗試git ls-remote https://...
以觸發提示您輸入密碼的提示,該提示將被緩存。
然后,TeamCity將能夠重用那些緩存的憑據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.