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


Jenkins使用過程中,大部分Job的第一項就行從源碼庫里簽出代碼。由於git越來越流行,所以,稍微新一些的項目的源碼管理都是基於git的。對應的,jenkins的git plugin幾乎是大部分jenkins用戶都繞不過去的一個插件。在這里,我要跟大家說一個非常悲催的事情,這個插件質量不怎么高:看一下 它開着的bug列表你就會發現,永遠都有200個左右的bug是打開的。因此,我們使用的時候,會遇到各種各樣的小坑。

隨便說4個常見小坑:
1.會突然卡死,沒有任何提示。
2.各種莫名其妙的錯誤提示,無從下手。
3.權限問題
4.ssh問題
5.大項目簽出timeout問題。

碰上這些問題,一般可以遵從如下步驟解決:
1.查看log中,git執行了什么樣的指令,去對應的slave機本地執行,然后看看是不是可以走得通,如果能夠走得通,8成是環境變量設置和權限問題。
2.google對應的英文提示。注意,一定是 google英文提示 ,stackoverflow上有數千個jenkins問題,大部分有很好的答案,但是百度是搜不到的。
3.順藤摸瓜找到問題,並解決。
上邊的步驟能夠幫助你解決99%的問題。

這里舉幾個小例子:

repository url 設置的時候提示沒有訪問權限。

  1. 登錄到master和slave機上看(必須兩者都看)是否有同樣的錯誤。
  2. 如果沒有同樣的錯誤,查看啟動jenkins的用戶和ssh登錄用戶是否一致,如果不一致,兩個用戶權限(包含ssh免密登錄權限)是否相同。
  3. 權限相同,免密一樣,還是提示權限問題。這時候需要在master/slave機的ssh鏈接上聯一下git終端。這時候會有一個步驟:將git服務器放到known_host,需要手工確認,手工確認以后,git插件不再提示權限問題。(這個例子就是一個典型的git 插件設計不足造成的)

timeout問題

有時候一個git庫很大,網絡條件不好的時候,總會超時下不下來。有兩個方法可以解決這個問題。

  1. 把jenkins的全局超時時間設置長一些。
    2.用命令行直接在slave機上clone,這樣后續就都是增量,不會超時了。

最后,如果你搜遍了google,並且死磕以后發現是插件bug,並且最新版本也沒有修復,並且繞不開。記得給他們提一個issue
這是git plugin 的主頁 https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-Bugs


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM