Jenkins卡在git fetch阶段。

10

我是Jenkins的初学者,想要让它在我的.NET项目中运行一些单元测试。

当我运行构建时,它会在尝试从Git仓库获取内容时挂起。

ERROR: Timeout after 10 minutes
 > C:\Program Files\Git\cmd\git.exe config --local --remove-section credential # timeout=10
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from https://github.com/name.of.repo

根据Jenkins的说明,我已生成已知主机并将.ssh目录复制到C:\Windows\SysWOW64\config\systemprofile.ssh。说明链接在这里,位于“Jenkins、Git插件和Windows”下。

我从命令行运行ssh git@github.com,并且可以成功验证。

接下来我该尝试什么?

4个回答

11

这很可能是防火墙问题。 您可以使用SSH(端口22)身份验证Github,因此该路由正在工作。 但是,您的任务正在尝试通过https://github.com(端口443)访问github,但连接超时了。 尝试通过将存储库url更改为git@github.com:account/repository.git来通过ssh访问github(您可以在repo的主页面找到此URL,在下拉菜单“选择克隆URL”中选择“SSH”选项)。


这对我有用。非常感谢,非常感激 :) - mogoli
4
如果出现间歇性问题怎么办?你有任何想法吗?大部分克隆操作都能正常进行,但某些操作会永远卡住。 - Petra Kahn
问题是否针对所有构建/作业出现,还是只针对特定的构建/作业?如果它是偶然发生的,我怀疑它是一个网络/防火墙相关问题。当克隆操作挂起时,您能否从Jenkins节点访问github.com?其他网站呢? - Bert Jan Schrijver

2
我遇到了与原帖作者相同的问题。SSH凭据存储在Jenkins中,并且适用于许多其他访问相同repo的节点。我可以使用Jenkins用户身份登录到机器上,并使用与Jenkins作业相同的SSH repo URL(git@git.com:account/repo.git)在repo上执行git clone

作为解决方法,我暂时将Jenkins作业中的git凭据设置为none。我认为这样允许它使用本地存储的凭据。
现在它正在工作。

0
一个比使用SSH更简单的替代方案是在运行任何git命令之前添加此代码片段。
echo "https://${GITHUB_USER}:${GITHUB_TOKEN}@github.intuit.com" >> /tmp/gitcredfile
git config --global credential.helper "store --file=/tmp/gitcredfile"

0

在尝试使用SSH访问远程Git仓库而不是用户名和密码之前,您必须注意克隆和提取的超时设置。

当您的网络连接较差且远程仓库大小较大时,会导致克隆超时。

进入项目设置:源代码管理 -> 附加行为 -> 高级克隆行为 -> 克隆和提取操作的超时时间(分钟) -> 大于10分钟。

enter image description here

如果你在使用git clone时遇到了长时间卡住的问题,无论是因为网络连接不好还是远程仓库太大,你可以尝试使用SSH来访问你的远程Git仓库,而不是使用用户名和密码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接