我是Jenkins的新手,我试图让它在我的.NET项目中运行一些单元测试。
当我运行构建时,它会在尝试从git存储库中获取时挂起。
错误:10分钟后超时
C:\ Program Files \ Git \ cmd \ git.exe config --local --remove-section credential #timetime = 10 错误:获取远程回购'来源错误 hudson.plugins.git.GitException:无法从https://github.com/name.of.repo获取
我已经生成了已知的主机并将.ssh dir复制到了C:\ Windows \ SysWOW64 \ config \ systemprofile.ssh,按照https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin下的jenkins说明" Jenkins,GIT插件和Windows"
我从cmd行运行了ssh git@github.com,我可以成功进行身份验证。
有什么想法吗?
谢谢:)
答案 0 :(得分:9)
这可能是防火墙问题。
您可以使用SSH(端口22)向Github进行身份验证,以便该路由正常运行。
但是,您的工作是尝试通过https://github.com(端口443)访问github超时。
尝试通过将存储库URL更改为git@github.com:account/repository.git
来访问ssh上的github(您可以在repo的主页上找到此URL,下拉菜单'选择克隆URL',选项' SSH&# 39;
答案 1 :(得分:1)
我和OP有同样的问题。 SSH凭据存储在Jenkins中,适用于访问同一个repo的许多其他节点。我可以作为Jenkins用户ssh进入机器,并使用与Jenkins作业(git clone
)相同的SSH repo URL在repo上执行git@git.com:account/repo.git
。
作为一种解决方法,我现在将Jenkins作业中的git凭据设置为none
。我假设它允许它使用本地存储的凭证。
现在正在运作。
答案 2 :(得分:0)
在尝试使用SSH而非用户名和密码访问SSH之前,您必须注意克隆和提取的超时设置。
如果您的互联网连接中断并且远程存储库很大,则会导致克隆超时。
转到项目设置:Source Code Management
-> Additional Behaviours
-> Advanced clone behaviours
-> Timeout (In Minutes) for clone and fetch operations
->超过10分钟。
然后,如果仍然存在相同的问题,无论是Internet连接不良还是大型远程存储库,git clone长时间卡住,您可以尝试使用SSH来访问远程Git存储库用户名和密码。
答案 3 :(得分:0)
使用SSH的一种更简单的选择是在运行任何git
命令之前添加此代码段。
echo "https://${GITHUB_USER}:${GITHUB_TOKEN}@github.intuit.com" >> /tmp/gitcredfile
git config --global credential.helper "store --file=/tmp/gitcredfile"