前言
在jenkins理配置了github的项目,但是构建看心情,有时很慢,经常是这种错误:
GnuTLS recv error (-110): The TLS connection was non-properly terminated
其实本质上还是访问github比较慢,当然这里要注意的其实用ssh访问github是没问题的,用https会有问题这个可以参考:GitHub提交代码超时解决方案 | 配置SSH连接
因此我们在jenkins也可以这样做:
一、配置ssh
github的配置有三种方式,可以参考这篇文章,不过我尝试了第一种和第二种都没有成功。如果大家可以成功也可以分享下步骤。
最后第三种成功了:
1.生成公钥和私钥
ssh-keygen -t rsa
一路按回车就行,然后进入/root/.ssh/ 目录,拷贝出来即可:
2.把公钥放到github
这个不多说了
3.把私钥放到Jenkins
选择Username with private key
二、使用ssh配置流水线
在流水线模块,设置Repository URL为 git@xxxxxx.git ,然后Credentials选择第一步中添加的凭证即可。
三、仍然报错的话
注意
如果这两部做完还是失败,比如报错
这个时候可以去jenkins服务器上先执行一次git clone git@xxxx.git 。这样上面这个令牌就可以用了。因为第一次执行clone,会让你输入yes
总结
- 要用ssh来配置,这样就快了
- 如果有子模块,记得也改成ssh,要改3个地方:
.gitmodules
.git/config
.git/modules/子模块名称/config
不错,现在每次构建都很快了。