Jenkins 100次構(gòu)建失敗踩坑全錄(一)

標簽(空格分隔):work


本文將以問題與解決方案的方式對Jenkins構(gòu)建過程中的問題進行收錄,后期會在評論中持續(xù)收集,如果有相同情況,請自行對照解決谬哀;

本文參考:
手把手教你利用Jenkins持續(xù)集成iOS項目
http://www.reibang.com/p/41ecb06ae95f
關(guān)于iOS-Jenkins進行持續(xù)集成項目部署
http://www.reibang.com/p/54c7daae6c94
iOS持續(xù)集成:Jenkins篇
http://www.reibang.com/p/faf879b3d182

關(guān)卡1 :

安裝Jenkins:首先你的電腦得有一個Java環(huán)境,接下來安裝Jenkins严肪。你可以直接去Jenkins入口網(wǎng)站史煎,查看安裝方式;
當(dāng)然你也可以使用以下方法:

  • 安裝homebrew
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 安裝jenkins
$ brew install jenkins

安裝成功后需要開啟jenkins服務(wù)驳糯;

關(guān)卡2 :

開啟Jenkins服務(wù):確認jenkins已安裝篇梭,在終端進入到j(luò)enkins安裝目錄下,會有一個叫做jenkins.war的文件酝枢,

$ java -jar jenkins.war

或者在終端輸入:

$ jenkins

當(dāng)出現(xiàn):


image_1c0ptnl2j13mh1mn2hmk18qf7usp.png-188.1kB
image_1c0ptnl2j13mh1mn2hmk18qf7usp.png-188.1kB

服務(wù)已經(jīng)就位恬偷,可以開始進行配置了;

這里還有兩個命令用于jenkins開啟和停用(Mac上):

$ sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
$ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

如果是linux上也可以這樣:

$ sudo systemctl status jenkins.service
$ sudo systemctl start jenkins.service

不過實際操作過程中帘睦,可能會出現(xiàn)停用失敗的情況袍患,我的做法是直接打開活動監(jiān)視器坦康,在里面搜java服務(wù),強制關(guān)閉掉诡延;這里需要注意滞欠,如果服務(wù)沒有停止再進行jenkins開啟是不成功的,提示會告訴你已經(jīng)在用:

image_1c0pu09in491qq31bqs25f1hbg26.png-222.9kB
image_1c0pu09in491qq31bqs25f1hbg26.png-222.9kB

如果你想查看是否jenkins在運行肆良,使用命令查看:

$ ps aux | grep jenkins

關(guān)卡3 :

安裝并開啟完成就可以在瀏覽器里輸入localhost:8080進行頁面化配置了筛璧;
安裝完成之后,Safari可能會自動打開惹恃,如果沒有自動打開夭谤,打開瀏覽器,輸入http://localhost:8080

image_1c0pvjgjqfbg3i01c371uhc1ves2j.png-27.6kB
image_1c0pvjgjqfbg3i01c371uhc1ves2j.png-27.6kB

這個時候可能會報一個錯誤巫糙。如果出現(xiàn)了這面的問題朗儒。出現(xiàn)這個問題的原因就是Java環(huán)境有問題,重啟Java環(huán)境即可参淹。

這個時候如果你重啟電腦會發(fā)現(xiàn)Jenkins給你新增了一個用戶醉锄,名字就叫Jenkins,不過這個時候你不知道密碼承二。你可能會去試密碼榆鼠,肯定是是不對的纲爸,因為初始密碼很復(fù)雜亥鸠。這個時候正確做法是打開http://localhost:8080 會出現(xiàn)下圖的重設(shè)初始密碼的界面。

image_1c0pvl71n5dulcc413164i1hcp30.png-30.4kB
image_1c0pvl71n5dulcc413164i1hcp30.png-30.4kB

按照提示识啦,找到/Users/Shared/Jenkins/Home/ 這個目錄下负蚊,這個目錄雖然是共享目錄,但是有權(quán)限的颓哮,非Jenkins用戶/secrets/目錄是沒有讀寫權(quán)限的家妆。

image_1c0pvm8al1tce1iled5voi216ac3d.png-200.2kB
image_1c0pvm8al1tce1iled5voi216ac3d.png-200.2kB

打開initialAdminPassword文件,復(fù)制出密碼冕茅,就可以填到網(wǎng)頁上去重置密碼了伤极。如下圖

image_1c0pvp2p01fon1h2mmvjs6s1fuj3q.png-99.6kB
image_1c0pvp2p01fon1h2mmvjs6s1fuj3q.png-99.6kB

一路安裝過來,輸入用戶名姨伤,密碼哨坪,郵件這些,就算安裝完成了乍楚。

還是繼續(xù)登錄localhost:8080

然而這一關(guān)還沒有結(jié)束:
寫blog的時候我把自己設(shè)置的帳號注銷了当编,然而當(dāng)時設(shè)置的密碼卻忘記了,怎么都想不起來徒溪,怎么辦呢忿偷?
首先我想能不能用之前給的Jenkins帳戶呢金顿,經(jīng)試錯,未果鲤桥;
接下來上百度查了幾種方法揍拆,有的方法很復(fù)雜,不打算用芜壁,我們只用最簡單粗暴的礁凡;只要之前的帳號信息沒有丟失,又可以進入系統(tǒng)就OK了慧妄,于是:

image_1c0q0bnonde9a9omqa1092a1747.png-85.9kB
image_1c0q0bnonde9a9omqa1092a1747.png-85.9kB

注意實際操作過程中發(fā)現(xiàn)不是/User/Shared/Jenkins/Home下的config.xml顷牌,也不是/User/Shared/Jenkins/Home/users下的config.xml,而是你自己用戶目錄~/.jenkins/下的config.xml塞淹,具體原因可能是jenkins運行的工作空間是當(dāng)前用戶目錄下的.jenkins窟蓝,然后就是這樣:

image_1c0q277tu152r9mg1dhg1edq8jp5q.png-55.9kB
image_1c0q277tu152r9mg1dhg1edq8jp5q.png-55.9kB

經(jīng)檢驗,無誤饱普,可進入运挫,但是好像遺留了一個問題,就是這樣進入的話就找不到管理用戶的選項了套耕;解決問題谁帕,勾選圖中黃色圈,返回系統(tǒng)管理冯袍,出現(xiàn)管理用戶(還是個隱藏道具)匈挖;


image_1c0q3ukis1vlhib71uij1729ohs67.png-33.1kB
image_1c0q3ukis1vlhib71uij1729ohs67.png-33.1kB
image_1c0q419b0164pqfe25d9br1fpt74.png-39.8kB
image_1c0q419b0164pqfe25d9br1fpt74.png-39.8kB
image_1c0q42m3mvf41d8fjs21ptb1ae77h.png-11.4kB
image_1c0q42m3mvf41d8fjs21ptb1ae77h.png-11.4kB

搞的像是特工登錄非授權(quán)帳戶一樣,不管怎么說康愤,總算是攻破了儡循,進入下一關(guān);

關(guān)卡 4:

先不管工程構(gòu)建里那一堆設(shè)置征冷,我們先來搞一下證書Cer择膝,鑰匙Keychain,配置文件Provisioning Profiles的一些問題:
首先去系統(tǒng)管理 -> 管理插件 -> 可選插件检激,搜索并安裝Keychains and Provisioning Profiles Management插件肴捉;
進入插件:


image_1c0qeblep1tcj4m319ap1bek783ah.png-31.1kB
image_1c0qeblep1tcj4m319ap1bek783ah.png-31.1kB

不要關(guān)鍵去填下面的空,我會告訴你這是一道有選項的題目叔收;進入文件目錄齿穗,Command + shift + G,寫下這樣的路徑~/資源庫/Keychains今穿,

image_1c0qekdqp9v712rd1gefjdr1fdcbe.png-62.2kB
image_1c0qekdqp9v712rd1gefjdr1fdcbe.png-62.2kB

這里我們把login.keychain-db上傳到Jenkins里缤灵,但是Upload并不能上傳這樣后綴的文件,所以需要你手動把login.keychain-db修改成login.keychain(復(fù)制后再修改,以防止其他地方會引用到帶-db)腮出;上傳完成后就會在下面出現(xiàn)你一些信息帖鸦;然后打開你的鑰匙串,這個知道在什么地方吧胚嘲;

image_1c0qet898q8m118mk2s6kj1cq5eb.png-131kB
image_1c0qet898q8m118mk2s6kj1cq5eb.png-131kB

點擊打包所用到的證書作儿,將紅色框中的名稱復(fù)制出來,添加到identities中馋劈;

image_1c0qf02rofnpc3r121c1nlb1mqteo.png-42.7kB
image_1c0qf02rofnpc3r121c1nlb1mqteo.png-42.7kB

如果有多個攻锰,則點擊Add Code Signing Identity添加;

然后是PP文件妓雾,這些文件需要我們從系統(tǒng)PP文件夾下復(fù)制到Jenkins資源文件夾下娶吞,如下圖兩個路徑:
這個是系統(tǒng)PP文件目錄


image_1c0qkdte41j1rgq81k8v1bi19f4f5.png-144.2kB
image_1c0qkdte41j1rgq81k8v1bi19f4f5.png-144.2kB

這個是Jenkins PP文件目錄


image_1c0qkkk833p0nt18andthn9qfi.png-79.2kB
image_1c0qkkk833p0nt18andthn9qfi.png-79.2kB

Provisioning Profiles Directory Path 填寫成,注意替換為自己的username:

/User/{USERNAME}/Library/MobileDevice/Provisioning Profiles

接著去你蘋果帳號里去找你對應(yīng)打包所需要的PP文件械姻,然后點upload上傳到Jenkins環(huán)境里妒蛇;
以上,證書部分解決楷拳;

關(guān)卡 5

創(chuàng)建項目過程我們會對各個需要的項進行逐個描述:
點新建項目绣夺,輸入項目名稱,選擇 構(gòu)建一個自由風(fēng)格的軟件項目欢揖,然后確定陶耍,進入配置頁面。


image_1c0ql3ppk1bht1b5ms4hcui1jpjfv.png-8.2kB
image_1c0ql3ppk1bht1b5ms4hcui1jpjfv.png-8.2kB
  • General
    這個部分的內(nèi)容都很淺顯她混,沒有什么可以說的烈钞,根據(jù)需要自行填充;這里說一下GitLab connection選項产上,因為我自己的工程是用gitlab管理的代碼棵磷,所以需要在Jenkins里下一個Gitlab的插件蛾狗,然后在里面進行帳號配置晋涣,可以采用帳號密碼以及SSH的方式,具體這個部分會有一個SSH的坑沉桌,先不作分析谢鹊,后面會講到,我這里先用帳號密碼的方式進行構(gòu)建留凭,經(jīng)檢驗發(fā)現(xiàn)SSH方式非必要佃扼;

Credentials在這里配置:

image_1c0qljaq610ljc02k6g1r821fs5gc.png-78.2kB
image_1c0qljaq610ljc02k6g1r821fs5gc.png-78.2kB

  • 源碼管理
    這里我選的Git,Repository URL填你工程的git地址蔼夜,選用帳號密碼的形式應(yīng)該是以http或https開頭的兼耀,Credentials填你在上一步中新建好的,
    image_1c0qlt20313duogl2g51hp11nqsgp.png-73kB
    image_1c0qlt20313duogl2g51hp11nqsgp.png-73kB

    Branch Specifier (blank for 'any') 填你要進行構(gòu)建的分支,我這里是*/release瘤运;

這里我們PS一個隱藏BOSS:

returned status code 143 jenkins
ERROR: Error fetching remote repo ‘origin’

這個報錯是工程配置結(jié)束后進行構(gòu)建后提示的窍霞,我當(dāng)時搞這個發(fā)現(xiàn)遠程代碼明明是已經(jīng)拉取到本地的,只是在拉取過程中會發(fā)生中斷拯坟,本人在進行了將近50次試錯后發(fā)現(xiàn)這個拉取到本地的代碼率是變化的但金,先前以為是SSH帳號的問題,于是轉(zhuǎn)頭花了一天的時間搞了下SSH郁季,后來SSH搞通后發(fā)現(xiàn)該問題仍然存在冷溃,后來終于在經(jīng)歷百度,谷歌梦裂,搜狗也用上的(不得不說有時候百度搜不出來的搜狗能搜到)似枕,發(fā)現(xiàn)了幾篇有用的,后來解決年柠,也算是不負辛苦菠净,后面有踩坑的伙伴多注意,前車之鑒后事之師彪杉;

http://blog.sina.com.cn/s/blog_72ef7bea0102vo9w.html
https://issues.jenkins-ci.org/browse/JENKINS-20445
https://stackoverflow.com/questions/35069079/jenkins-git-plugin-timeout-when-try-to-pull-repositoty-using-ssh

解決方案就在于這個Timeout毅往,相信你看了這個單詞就知道是怎么回事了:

image_1c0qmnlafh2p1j571b4ettv1ncah6.png-74.3kB
image_1c0qmnlafh2p1j571b4ettv1ncah6.png-74.3kB

另順便粘一個code 128的鏈接,是個與該問題相關(guān)的問題派近,因為這些問題關(guān)鍵字有的重復(fù)攀唯,所以搜出來的文章有時會誤導(dǎo),所以請仔細辨別:

returned status code 128 jenkins
ERROR: Error cloning remote repo 'origin'
stderr: Permission denied (publickey).

http://wantcoding.com/?p=293
這個鏈接是附送的渴丸,進去多看看你會有驚喜侯嘀,還有QQ群哦

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谱轨,隨后出現(xiàn)的幾起案子戒幔,更是在濱河造成了極大的恐慌,老刑警劉巖土童,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诗茎,死亡現(xiàn)場離奇詭異,居然都是意外死亡献汗,警方通過查閱死者的電腦和手機敢订,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來罢吃,“玉大人楚午,你說我怎么就攤上這事∧蛘校” “怎么了矾柜?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵阱驾,是天一觀的道長。 經(jīng)常有香客問我怪蔑,道長啊易,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任饮睬,我火速辦了婚禮租谈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捆愁。我一直安慰自己割去,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布昼丑。 她就那樣靜靜地躺著呻逆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪菩帝。 梳的紋絲不亂的頭發(fā)上咖城,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音呼奢,去河邊找鬼宜雀。 笑死,一個胖子當(dāng)著我的面吹牛握础,可吹牛的內(nèi)容都是我干的辐董。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼禀综,長吁一口氣:“原來是場噩夢啊……” “哼简烘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起定枷,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤孤澎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后欠窒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體覆旭,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年贱迟,在試婚紗的時候發(fā)現(xiàn)自己被綠了姐扮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片絮供。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡衣吠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出壤靶,到底是詐尸還是另有隱情缚俏,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站忧换,受9級特大地震影響恬惯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜亚茬,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一酪耳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧刹缝,春花似錦碗暗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至颂砸,卻和暖如春噪奄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背人乓。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工勤篮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人色罚。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓叙谨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親保屯。 傳聞我的和親對象是個殘疾皇子手负,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容