iOS使用Jenkins+fir搭建持續(xù)集成環(huán)境

一、安裝jenkins

$ brew install jenkins

如果沒(méi)有安裝java環(huán)境的話會(huì)出現(xiàn)以下錯(cuò)誤,需要先安裝jenkins需要安裝java環(huán)境, JDK下載地址

jenkins: Java 1.7+ is required to install this formula.
You can install with Homebrew Cask:
  brew install Caskroom/cask/java

You can download from:
  http://www.oracle.com/technetwork/java/javase/downloads/index.html
Error: An unsatisfied requirement failed this build.

安裝完成后,啟動(dòng)jenkins,命令:

$ jenkins

在瀏覽器中輸入以下地址訪問(wèn):

http://localhost:8080/

訪問(wèn)成功后,找到系統(tǒng)管理->插件管理,然后添加一下4個(gè)插件:

  • Xcode integration

  • Git plugin

  • Post-Build Script Plug-in

  • GitHub plugin

安裝完成后,重啟jenkins!

二、新建項(xiàng)目

1.點(diǎn)擊左側(cè)工具欄的新建->填入項(xiàng)目名稱-> 選擇 構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目 ->點(diǎn)擊 OK按鈕 ->進(jìn)入到配置頁(yè)面

2.填入描述信息,找到源碼管理這一項(xiàng),我的在GitLab上,所以我這里選擇Git,填入 Repository URL

源碼管理

3.可以通過(guò)Poll SCM 選項(xiàng)設(shè)置jenkins在什么時(shí)候自動(dòng)創(chuàng)建,可以點(diǎn)擊輸入框后邊的問(wèn)號(hào)看說(shuō)明。

Poll SCM

4.找到構(gòu)建選項(xiàng)中增加構(gòu)建步驟,選擇Xcode

  • Target :填寫(xiě)項(xiàng)目中Target的名字
  • Clean before build 設(shè)置為: YES
  • Configuration 設(shè)置為:Release
  • .ipa filename pattern 起一個(gè).ipa文件的名字,不需要寫(xiě)后綴
  • Output directory 是.ipa的輸出路徑,我填的是:${WORKSPACE}/build/
構(gòu)建

5.在下邊的Code signing & OS X keychain options選項(xiàng)中,設(shè)置證書(shū)信息,之前在項(xiàng)目中就已經(jīng)設(shè)置過(guò)證書(shū)了,在這里只要填入路徑就可以了
步驟:

  • 勾選Unlock KeyChain?選項(xiàng),
  • 在KeyChain Path的輸入框中填入:
${HOME}/Library/Keychains/login.keychain
  • Keychain password的輸入框中填入:
你的鑰匙串的密碼
Code signing & OS X keychain options

6.如果使用了cocoapods,需要設(shè)置一下Advanced Xcode build options選項(xiàng)。

  • Schema 項(xiàng)目的schema名稱
  • SDK 設(shè)置為:iphoneos
  • Xcode Workspace File 填寫(xiě)workspace的文件名字,不需要后綴
  • Build output directory 設(shè)置為:${WORKSPACE}/build/
Advanced Xcode build options

注意:在下一步之前,先安裝fir.im 的工具fir-cli,命令:

$ sudo gem install fir-cli --no-ri --no-rdoc

Mac OS X 10.11 以后的版本, 由于10.11引入了 rootless
, 無(wú)法直接安裝 fir-cli, 使用以下命令:

sudo gem install -n /usr/local/bin fir-cli

7.點(diǎn)擊增加構(gòu)建后操作->選擇Execute a set of scripts->點(diǎn)擊Add Build Step->選擇Execute shell,輸入框中填入:

fir p ${WORKSPACE}/build/wangcai.ipa -T fir的APIToken
增加構(gòu)建后操作

fir的APIToken需要登錄fir獲取


fir的APIToken

設(shè)置完成之后可以點(diǎn)擊保存了!

8.保存之后點(diǎn)擊立即構(gòu)建,就可以看見(jiàn)開(kāi)始構(gòu)建了,藍(lán)色是構(gòu)建成功,紅色為失敗

立即構(gòu)建
構(gòu)建中
上傳到fir后的樣子

三、郵件配置

1.在首頁(yè)找到系統(tǒng)管理選項(xiàng)并進(jìn)入->選擇系統(tǒng)設(shè)置選項(xiàng)->找到系統(tǒng)管理員郵件地址,并填入你的郵箱。

系統(tǒng)管理員郵件地址

2.找到郵件通知選項(xiàng)進(jìn)行配置,(如果你的郵箱不支持SMTP,要先去郵箱賬戶里設(shè)置一下)

  • SMTP服務(wù)器:根據(jù)自己的郵箱配置,我用的是QQ企業(yè)郵箱,填的是 smtp.exmail.qq.com
  • 勾選使用SMTP認(rèn)證
  • 用戶名: 郵箱地址
  • 密碼: 密碼 ,如果郵箱開(kāi)啟了“微信動(dòng)態(tài)碼,這里要填授權(quán)碼”
  • 勾選使用SSL協(xié)議認(rèn)證
  • 端口:根據(jù)自己郵箱SMTP服務(wù)器來(lái)配置
  • 字符集: UTF-8
  • 勾選通過(guò)發(fā)送測(cè)試郵件測(cè)試配置選項(xiàng)
  • Test e-mail recipient:郵箱地址
  • 點(diǎn)擊Test configuration按鈕進(jìn)行測(cè)試,輸入框下方出現(xiàn)Email was successfully sent,表示測(cè)試成功,你會(huì)收到一封內(nèi)容為This is test email #9 sent from Jenkins的郵件,然后保存當(dāng)前設(shè)置即可!
郵件通知

3.進(jìn)入你的項(xiàng)目->在左側(cè)找到配置選項(xiàng)并進(jìn)入配置頁(yè)面,找到增加構(gòu)建后步驟選項(xiàng)并點(diǎn)擊->選擇E-mail Notification,在Recipients 填入郵箱地址,如果要發(fā)給多個(gè)人,以空格分隔,這樣在構(gòu)建失敗的時(shí)候都會(huì)發(fā)送郵件給這個(gè)接收者。

E-mail Notification
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,556評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,463評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,009評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,778評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,218評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,436評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,969評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,795評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,993評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,229評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,659評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,917評(píng)論 1 286
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,687評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,990評(píng)論 2 374

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