1.持續(xù)化集成的好處
1. 縮減開發(fā)周期食茎,快速迭代版本
每個版本開始都會估算好開發(fā)周期,但是總會因為各種事情而延期馏谨。這其中包括了一些客觀因素别渔。由于產(chǎn)品線增多,迭代速度越來越快田巴,給測試帶來的壓力也越來越大钠糊。如果測試都在開發(fā)完全開發(fā)完成之后再來測試,那就會影響很長一段時間壹哺。這時候由于集成晚就會嚴(yán)重拖慢項目節(jié)奏抄伍。
2.自動化流水線操作帶來的高效
其實打包對于開發(fā)人員來說是一件很耗時,而且沒有很大技術(shù)含量的工作管宵。如果開發(fā)人員一多截珍,相互改的代碼沖突的幾率就越大,加上沒有產(chǎn)線管理機制箩朴,代碼倉庫的代碼質(zhì)量很難保證岗喉。團隊里面會花一些時間來解決沖突,解決完了沖突還需要自己手動打包炸庞。這個時候如果證書又不對钱床,又要耽誤好長時間。這些時間其實可以用持續(xù)集成來節(jié)約起來的埠居。一天兩天看著不多查牌,但是按照年的單位來計算,可以節(jié)約很多時間滥壕!
3.隨時可部署
有了持續(xù)集成以后纸颜,我們可以以天為單位來打包,這種高頻率的集成帶來的最大的優(yōu)點就是可以隨時部署上線绎橘。這樣就不會導(dǎo)致快要上線胁孙,到處是漏洞,到處是bug称鳞,手忙腳亂弄完以后還不能部署涮较,嚴(yán)重影響上線時間。
4.極大程度避免低級錯誤
我們可以犯錯誤胡岔,但是犯低級錯誤就很不應(yīng)該法希。這里指的低級錯誤包括以下幾點:編譯錯誤,安裝問題靶瘸,接口問題苫亦,性能問題。
以天為單位的持續(xù)集成怨咪,可以很快發(fā)現(xiàn)編譯問題屋剑,自動打包直接無法通過。打完包以后诗眨,測試掃碼無法安裝唉匾,這種問題也會立即被暴露出來。接口問題和性能問題就有自動化測試腳本來發(fā)現(xiàn)匠楚。這些低級問題由持續(xù)集成來暴露展現(xiàn)出來巍膘,提醒我們避免低級錯誤。
Jenkins持續(xù)化集成工具
Jenkins的工作流程如圖所示
2.Jenkins下載和安裝
Jenkins是基于Java開發(fā)的一種持續(xù)集成工具芋簿。所以呢峡懈,要使用Jenkins必須使用先安裝JDK。
JDK的下載地址
Jenkins下載地址
下載好JDK和Jenkins的安裝包后直接雙擊安裝就好与斤,具體的就不截圖了肪康,so easy。
好啦撩穿,安裝好Jenkins后打開瀏覽器打開(http://localhost:8080)
就可以看到Jenkins的初始頁面了(如果不能打開應(yīng)該是JDK環(huán)境沒有安裝好磷支,重新下載最新的JDK安裝一下,也有可能是8080端口被占用了)
這里需要一個初始密碼食寡,頁面中的紅色字體也標(biāo)出了該密碼文件的路徑,不過一開始該文件是沒有讀寫權(quán)限的雾狈,需要先到找到/Users/Shared/Jenkins/Home/ 這個目錄下,改了/secrets/目錄的讀寫權(quán)限抵皱,右鍵顯示簡介善榛,然后點擊鎖就可以改權(quán)限了。同樣的把/secrets/目錄里面的initialAdminPassword文件的權(quán)限改了叨叙,就可以打開initialAdminPassword文件獲取密碼了锭弊。
把獲取到的密碼粘貼到剛剛的頁面,然后選擇繼續(xù)。
完成之后會進來一個選擇插件安裝的頁面(這里個人小建議就是選選擇第二個自定義的插件擂错,因為如果選擇第一個安裝推薦的插件的話會太多了味滞,等待的時間過長,而且可能會卡死了)
選擇了第一個安裝默認(rèn)的插件的話如圖(我第一次安裝時就選擇了安裝推薦插件钮呀,但是等了很久剑鞍,后來直接卡死了,于是我只能卸掉Jenkins重新跑一遍前面的流程爽醋,卸載Jenkins的方法)
還是選擇第二個吧蚁署,到時候初始化完畢了再到插件選擇安裝頁面安裝我們需要的插件即可~~~到了創(chuàng)建用戶的時候了
路安裝過來,輸入用戶名蚂四,密碼光戈,郵件這些哪痰,就算安裝完成了。
3.jenkins插件安裝
接下來是插件安裝了
這里列一下我用到的插件
1.Xcode integration xcode的插件
2.Keychains and Provisioning Profiles Management 安裝證書的插件
3.Email Extension Plugin 發(fā)送郵件的插件
4.fir-plugin 上傳到fir的插件下載地址(http://blog.fir.im/jenkins/)
5.Subversion Plug-in SVN的插件
下載過程中會出現(xiàn)這個頁面久妆,等待下載完成更新頁面即可
4.Jenkins證書配置
OK晌杰,插件安裝完畢了,下一步的準(zhǔn)備工作是證書的導(dǎo)入,同樣是系統(tǒng)管理--->Keychains and Provisioning Profiles Management(注意這個是安裝了Keychains and Provisioning Profiles Management插件后才會有的)
然后進來證書設(shè)置頁面筷弦,前往~/Library/keyChains/ 找到login.keychain文件肋演,拖進來證書安裝頁面,點擊upload上傳烂琴,會出現(xiàn)設(shè)置密碼爹殊,填電腦密碼和證書的名字。(這里有可能沒有l(wèi)ogin.keychain奸绷,而是login.keychain-db文件梗夸,一樣的替換掉就好)接著前往~/Library/MobileDevice/文件夾,將你的開發(fā)描述文件拖進來upload
將~/Library/keyChains/ 下的login.keychain 及l(fā)ogin.keychain-db這兩個文件拷貝到/Users/Shared/Jenkins/Library/Keychains文件夾下面(沒有Keychains文件夾就創(chuàng)建一個)
將~/Library/MobileDevice/的整個文件夾Provisioning Profiles拷貝到/Users/Shared/Jenkins/Library/MobileDevice下面(沒有MobileDevice文件夾就創(chuàng)建一個)
一定要把Provisioning Profiles整個文件夾放到MobileDevice下面
一定要把Provisioning Profiles整個文件夾放到MobileDevice下面
一定要把Provisioning Profiles整個文件夾放到MobileDevice下面
最后到秘鑰里面健盒,找到開發(fā)證書-->顯示簡介-->訪問控制修改為允許所有程序訪問此項目(Jenkins才可以訪問到我們的開發(fā)文件)
nice到這里我們的證書就配置完畢啦可以愉快的去構(gòu)建項目啦~~~~
5.Jenkins構(gòu)建項目
回到Jenkins的首頁--->新建-->填寫項目名稱绒瘦,這個自己喜歡!扣癣,選擇構(gòu)建項目類型惰帽,選擇一個自由風(fēng)格的項目,next Ok
1.General默認(rèn)都不選就好父虑,具體的作用可以點擊该酗?都有詳細(xì)的說明
2.源碼管理選擇SVN,copy源碼的SVN地址,然后addSVN用戶
3.構(gòu)建觸發(fā)器選擇Poll SCM 輪詢的方法士嚎,輸入H/5 * * * * 表示五分鐘check一次SVN的路徑呜魄,如果源碼有變化就構(gòu)建。其他的可點擊莱衩?看具體的解釋
4.構(gòu)建環(huán)境選擇Keychains就好
5.構(gòu)建爵嗅,增加構(gòu)建步驟里面選擇Xcode
這里的輸出路徑 ${WORKSPACE}/build/ WORKSPACE指的是當(dāng)前的工作路徑,也可以自定義輸出路徑笨蚁,其他的可以不用設(shè)置
接著設(shè)置keychain睹晒,path填寫/Users/Shared/Jenkins/Library/Keychains/login.keychain,這個是固定的括细,就是我們剛剛他證書復(fù)制進來的路徑伪很,然后填寫密碼,密碼是電腦的開機密碼注意7艿ァo笔浴!览濒!
如圖呆盖,這里的schema填寫的是xcode中工程的名稱
如果你的工程師通過cocoapods管理的話那么就填寫Xcode Workspace File這個拖云,不用填Xcode Project File。但是第一次你的代碼還沒有從SVN上面拉下來呢絮短,所以并不知道這個工程路徑所在啊江兢。所以第一次構(gòu)建的時候這里就留空先昨忆,等你的代碼從SVN上面clone下來后丁频,找到/Users/Shared/Jenkins/Home/workspace/里面找到該工程的路徑在填進去就好,嗯邑贴,我就是這么干的席里,如果有好方法記得分享給我一下呀~注意:該路徑后面不要帶.xcworkspace
6.構(gòu)成成功后的操作,上傳到fir平臺,這里選擇upload to fir.im,記得是安裝了fir-plugin才有這個拢驾。
fir.im Token是fir平臺的給你賬號唯一token奖磁,如果沒有去生成一下
IPA/APK Files (optional)二進制包的路徑,可選的繁疤,如果上面ipa的輸出路徑是${WORKSPACE}/build/的話這里可以不填咖为,我的就是。如果是自定義的輸出路徑的話可能需要稠腊,我暫時還沒有測試這里
最后填寫保存就可以去構(gòu)建啦啦啦啦啦~~~
6.構(gòu)建
回來主頁面后選擇立即構(gòu)建躁染,就可以看到構(gòu)建的進度了,配置就是剛剛的那些構(gòu)建的配置架忌,可以進去修改
下面的build history就是我們的構(gòu)建歷史了吞彤,如果是紅色的就是構(gòu)建失敗,如果是藍(lán)色的就是構(gòu)建成功叹放,點擊小球可以進去看構(gòu)建的日志饰恕,查看失敗的原因。好啦井仰,今天就到這里了埋嵌,shell腳本構(gòu)建還不會,有是時間研究會了再補上俱恶,然后后面會補上本人遇到的坑雹嗦,都是淚~~~~~~~