2

image.png

自从被迫舍弃了优越、稳定、网络好的travis后,开始了折腾jenkins之路。一路折腾,一路踩坑。这其中最大、最难爬的坑要属网络。感谢相关部门让我们处在这么一个网络环境中,这无疑对提升我们的网络水平是相当有帮助的。

代理

我们知道,解决网络的最有效的方便是使用非普通代理。让数据通过代理github、maven、npm等资源连接,从而解决慢网络的问题。

本文的重点并不在于如何安装使用代理。假设我们已经安装了本机代理,信息为:http://127.0.0.1:9789

配置git代理

git提供了git config --global命令来设置全局配置,我的理解是:远程登录服务器后,执行:git config --global http.proxy http://127.0.0.1:9789后,应该对于所有的用户都生效,包括jenkins自动使用git进行代码检出的用户。

但事与愿违,照此思路无论怎么尝试最终还是无法提升jenkins要使用git时的检出速度。在Check out from version control环节中,仍然会报:returned status code 143:143错误。

还有相关的资料推荐将一些插件,或者直接将jenkins跑在代理后面的,或者设置timeout的最大时间阀值的,均为达到心中的理想值。

最后猜测或许jenkins在与服务器交互时,并没有使用服务器设置的相关环境变量,而是完全使用的自己的。

于是来到了jenkins设置中的环境变量设置:

image.png

小手一抖保存,rebuild,快速通过,git代理生效。

image.png

第二种方案

如果你的jenkins有多个节点, 各个节点的代理信息并不统一;或者你的jenkins上有多个项目,有些地址你想走代理,而另外一些不想走代理。则可以在每个节点上的jenkins目录建立.gitconfig文件,并输入以下内容:

[http "https://github.com"]
        proxy = http://127.0.0.1:9789

表示只有github.com上的仓库走代理。


潘杰
3.1k 声望238 粉丝