Jenkins拾遗--第五篇-git插件填坑

Jenkins使用过程当中,大部分Job的第一项就行从源码库里签出代码。因为git愈来愈流行,因此,稍微新一些的项目的源码管理都是基于git的。对应的,jenkins的git plugin几乎是大部分jenkins用户都绕不过去的一个插件。在这里,我要跟你们说一个很是悲催的事情,这个插件质量不怎么高:看一下 它开着的bug列表你就会发现,永远都有200个左右的bug是打开的。所以,咱们使用的时候,会遇到各类各样的小坑。git

随便说4个常见小坑:
1.会忽然卡死,没有任何提示。
2.各类莫名其妙的错误提示,无从下手。
3.权限问题
4.ssh问题
5.大项目签出timeout问题。服务器

碰上这些问题,通常能够听从以下步骤解决:
1.查看log中,git执行了什么样的指令,去对应的slave机本地执行,而后看看是否是能够走得通,若是可以走得通,8成是环境变量设置和权限问题。
2.google对应的英文提示。注意,必定是 google英文提示 ,stackoverflow上有数千个jenkins问题,大部分有很好的答案,可是百度是搜不到的。
3.顺藤摸瓜找到问题,并解决。
上边的步骤可以帮助你解决99%的问题。网络

这里举几个小例子:ssh

repository url 设置的时候提示没有访问权限。

  1. 登陆到master和slave机上看(必须二者都看)是否有一样的错误。
  2. 若是没有一样的错误,查看启动jenkins的用户和ssh登陆用户是否一致,若是不一致,两个用户权限(包含ssh免密登陆权限)是否相同。
  3. 权限相同,免密同样,仍是提示权限问题。这时候须要在master/slave机的ssh连接上联一下git终端。这时候会有一个步骤:将git服务器放到known_host,须要手工确认,手工确认之后,git插件再也不提示权限问题。(这个例子就是一个典型的git 插件设计不足形成的)

timeout问题

有时候一个git库很大,网络条件很差的时候,总会超时下不下来。有两个方法能够解决这个问题。google

  1. 把jenkins的全局超时时间设置长一些。
    2.用命令行直接在slave机上clone,这样后续就都是增量,不会超时了。

最后,若是你搜遍了google,而且死磕之后发现是插件bug,而且最新版本也没有修复,而且绕不开。记得给他们提一个issue
这是git plugin 的主页 https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-Bugsurl

相关文章
相关标签/搜索