一杨刨、簡述
jenkins是一個廣泛用于持續(xù)構(gòu)建的可視化web工具杜跷,持續(xù)構(gòu)建即各種項目的”自動化”編譯便锨、打包氏仗、分發(fā)部署吉捶。jenkins可以很好的支持各種語言(比如:java, c#, php等)的項目構(gòu)建,也完全兼容ant皆尔、maven呐舔、gradle等多種第三方構(gòu)建工具,同時跟svn慷蠕、git能無縫集成珊拼,也支持直接與知名源代碼托管網(wǎng)站,比如github砌们、bitbucket直接集成杆麸。
二、Jenkins的安裝
1浪感、Jenkins本身是用java語言開發(fā)的昔头,所以安裝Jenkins之前,要保證你的電腦有jdk影兽,如果沒有揭斧,請到如下鏈接下載:http://rj.baidu.com/soft/detail/25851.html?ald,另外建議git、ant讹开、maven盅视、gradle、groovy等工具也一并安裝好闹击,方便與這些構(gòu)建工具集成成艘。
2、進(jìn)入Jenkins的官網(wǎng)https://jenkins.io/index.html淆两,然后下載并安裝Jenkins。此處有兩種安裝方法仲义,使用命令行安裝和使用jenkins.pkg安裝,建議使用后一種剑勾,步驟如下:
(1)如下圖,點擊 Download Jenkins
(2)然后選擇 LTS Release->2.7.1.war->Mac OS X
(3)下載完成后盯另,得到 jenkins-2.7.1.pkg 文件鸳惯,點擊直接安裝即可芝发,安裝過程中苛谷,一路continue腹殿,到下圖時锣尉,取消 start at boot as“jenkins”自沧,一般不需要自啟動。
(4)安裝完成后晒喷,會直接跳轉(zhuǎn)到如下界面凉敲,如果沒有跳轉(zhuǎn)或者跳轉(zhuǎn)失敗寺旺,可通過執(zhí)行如下命令 ” open /Applications/Jenkins/jenkins.war ” 進(jìn)入到該界面:
(5)觀察圖中的路徑,然后打開你的終端叮姑,執(zhí)行如下命令(注意:該命令僅在安裝Jenkins的過程中執(zhí)行才有效据悔;安裝成功后极颓,再在終端中執(zhí)行是無效的):
(6)然后將我們得到的password輸入到“Administrator password“中兵琳,即可進(jìn)入如下界面骇径,接著安裝一些建議的插件破衔,安裝過程中晰筛,有的插件可能會安裝失敗读第,可以跳過卦方,之后需要對應(yīng)的插件時,再重新安裝即可逝她,具體后面會講到:
(7)插件安裝完成后黔宛,可能會卡在如下界面臀晃,不會自動跳轉(zhuǎn)徽惋,刷新下界面即可:
(8)在刷新后的界面中注冊险绘,輸入用戶名和密碼宦棺,如下:
(9)注冊成功后代咸,點擊”Start using Jenkins”
三呐芥、Jenkins的使用
1贩耐、安裝成功后潮太,會進(jìn)入到如下界面:
2铡买、由于安裝過程中奇钞,有些插件可能會安裝失敗景埃,通過如下方式檢查所需的插件是否安裝成功谷徙。
(1)通過“系統(tǒng)管理->管理插件->已安裝“完慧,檢查如下所需的插件是否安裝成功:
<1> Xcode integration
<2> GIT plugin
<3> Post-Build Script Plug-in
<4> GitHub plugin
<5> Email Extension Plugin
特別提醒:本人的項目是使用Git托管在OSChina上的屈尼,所以具體需要什么插件要具體考慮脾歧,建議最好對照上述步驟(7)中的插件安裝結(jié)果來檢查鞭执。
(2)如果有對應(yīng)的插件沒有安裝成功蚕冬,可通過“系統(tǒng)管理->管理插件->可選插件“來安裝囤热。安裝插件的過程中旁蔼,如下:
可以看到棺聊,插件已經(jīng)安裝成功限佩。但是祟同,打開“系統(tǒng)管理->管理插件->已安裝“時晕城,沒有找到剛剛安裝的插件砖顷,這是可以通過重啟Jenkins滤蝠,并重新安裝來解決,直到最終我們安裝的插件出現(xiàn)在“系統(tǒng)管理->管理插件->已安裝“中房轿。
提示:重啟Jenkins的方法為:localhost:8080/restart
3囱持、Jenkins的使用
(1)點擊新建纷妆,創(chuàng)建一個項目
(2)輸入項目名稱掩幢,并選擇構(gòu)建一個自由風(fēng)格的軟件項目际邻,點擊下方的OK世曾。
(3)General 中建議寫上一些項目描述轮听,其余的不用操作
(4)源碼管理,配置如下:
我的項目是使用Git托管在OSChina上的述寡,具體情況具體對待辨赐,配置如下:
<1> 選擇Git
<2> 首先將托管在OSChina上的項目的URL
取出掀序,并粘貼在圖中位置
<3> 通過 “Credentials->Add->Jenkins”來添加OSChina的用戶名和密碼叶雹。
<4> 輸入對應(yīng)的用戶名和密碼后折晦,并在Credentials中選擇該帳號满着,其余選項不用操作风喇。
(5)構(gòu)建觸發(fā)器,有多個選項耙考,具體選擇要看你的需求倦始,舉例說明:
<1> Build periodically:周期進(jìn)行項目構(gòu)建鞋邑,它不關(guān)心源碼是否發(fā)生變化。
<2> Poll SCM:定時檢查源碼變更(根據(jù)SCM軟件的版本號)剔猿,如果有更新就checkout最新code下來归敬,然后執(zhí)行構(gòu)建動作汪茧。
<3> 我們接下來用Build periodically來演示舱污,如下圖扩灯,其中的日程表設(shè)置為 ” 10 12 * * * “珠插,即每天中午的12點10分捻撑,都會自動構(gòu)建一次:
提示:日程表中所填格式的含義顾患,可以點擊右側(cè)的?來查看描验,其中有很詳細(xì)的解釋絮缅。
(6)構(gòu)建環(huán)境耕魄,可直接跳過彭谁,不用設(shè)置缠局。
(7)構(gòu)建狭园,設(shè)置如下:
1)General build settings
<1> 增加構(gòu)建步驟唱矛,選擇 Xcode绎谦。
<2> 在下圖的Target中窃肠,保證該Target和Xcode項目工程中的Target同名冤留。
Xcode項目工程中的Target如下圖:
<3> 點擊圖中右下角的Settings
<4> 建議勾選Clean before build?破托,并將Configuration設(shè)為Release土砂。
<5> 勾選Pack application and build .ipa?萝映,同時為即將輸出的ipa文件命名并指定輸出路徑序臂,如下圖:
2)Code signing & OS X keychain options
我在OSChina上托管的項目,已經(jīng)在Xcode中就配置好了證書构订,所以只需要執(zhí)行如下步驟:勾選 Unlock Keychain?悼瘾,并輸入對應(yīng)的Keychain path 和 Keychain password 即可亥宿。
提示:怎樣獲得Keychain path 和 Keychain password ?
解決方案:回到Jenkins首頁材蛛,系統(tǒng)管理->系統(tǒng)設(shè)置->
Xcode Builder,其中Keychain path會自動生成马绝,Keychain Name 和 Keychain password 填寫即可富稻。
3)Advanced Xcode build options
此處有個注意點抚岗,即你的項目中使用CocoaPods和沒有使用CocoaPods的配置是不同的宣蔚。
<1> 假如你的項目中使用了CocoaPods胚委,如下圖配置亩冬,至于每一項是什么含義硅急,點擊后面的?铜秆,已經(jīng)解釋的很清楚了连茧,不再贅述:
<2> 假如你的項目中沒有使用CocoaPods,應(yīng)配置如下:
4)Versioning 跳過即可。
(8)構(gòu)建后操作
小提示:點擊各個選項最后的?時针姿,都會有相應(yīng)選項的詳細(xì)說明距淫。
1)構(gòu)建后榕暇,上傳到fir.im
由于構(gòu)建后彤枢,要上傳到http://fir.im/apps缴啡,而且上傳有兩種常用方法业栅,建議使用第一種反镇。
第一種方法:使用插件fir-plugin-0629.hpi歹茶,直接點擊下載即可惊豺。配置如下:
<1> 回到Jenkins首頁尸昧,系統(tǒng)管理->管理插件->高級旷偿,通過下圖將你下載的插件上傳:
<2> 上傳之后烹俗,在 “可選插件” 中找到它,然后安裝萍程。
<3> 安裝成功后幢妄,如下圖,選擇 “增加構(gòu)建后操作步驟”茫负,選擇 “Upload to fir.im”蕉鸳。
<4> 在Upload to fir.im 中忍法,輸入你的fir.im Token潮尝。
提示:fir.im Token 的獲得方式:首先注冊一個 fir.im 帳號,然后如下圖饿序,找到你的 fir.im Token勉失。
如下圖,即 fir.im Token嗤堰,可重新生成戴质。
<5> 其余選項略過。
第二種方法:使用命令行的形式配置并上傳踢匣,簡述如下:
<1> 選擇 “增加構(gòu)建后操作步驟”
<2> 選擇 “Execute a set of scripts”
<3> 選擇 “Add build step”
<4> 選擇 “Execute shell”
<5> 在下圖中輸入:fir p${WORKSPACE}/build/TestJenkins.ipa -T#API Token#
提示1:其中${WORKSPACE}/build/為 .ipa 的輸出路徑告匠,#API Token#為fir.im的API Token。
提示2:在使用該命令前請先確認(rèn)安裝fir-cli离唬,安裝命令如下:
sudo gem install fir-cli –no-ri –no-rdoc
上面的命令來自 fir.im 的工具 fir-cli后专,這是他們的官方使用說明:官方工具 fir-cli 使用說明。
2)構(gòu)建后输莺,自動發(fā)送郵件提醒
<1> Jenkins 自帶一個郵件的通知的功能戚哎,但是自帶的郵件通知功能,有點簡單嫂用,不能自定義信息型凳,所以我們安裝郵件插件Email Extension Plugin。
<2> 首先確保在 “系統(tǒng)管理->插件管理->已安裝 “中嘱函,已經(jīng)安裝了Email Extension Plugin甘畅,如果沒有,請安裝往弓。
<3> 通過 “系統(tǒng)管理->系統(tǒng)設(shè)置->Extended E-mail Notification” 配置郵件服務(wù)器疏唾,此處以163郵箱為例,具體配置如下圖函似,并指定 “Default Content Type”:
<4> 點擊上圖中的 “高級”槐脏,可以進(jìn)一步設(shè)置,如下圖撇寞,即指定一個可用的163郵箱顿天,用來發(fā)送郵件,輸入正確的郵箱和密碼”:
同時指定 ” Default Recipients” 和 “Default Content”蔑担,具體如下圖露氮,其中 “Default Content” 可根據(jù)實際需求來調(diào)整。
<5> 在 “系統(tǒng)管理->系統(tǒng)設(shè)置->Jenkins Location” 中钟沛,將上述163郵箱作為 “系統(tǒng)管理員郵件地址”畔规。
提示:郵箱(以163郵箱為例),一般都是禁止第三方郵件客戶端來使用163郵箱來發(fā)郵件的恨统,可以通過以下方式解決:
首先叁扫,進(jìn)入163郵箱,找到設(shè)置畜埋;
然后莫绣,如下圖,選擇 “POP3/SMTP/IMAP”
最后悠鞍,如下圖对室,勾選 “POP3/SMTP服務(wù)” 和 “IMAP/SMTP服務(wù)”,并通過短信驗證的方式,實現(xiàn)使用授權(quán)碼登錄第三方郵件客戶端掩宜。(此處各種郵箱的設(shè)置不一定相同蔫骂,但大同小異)
<6> 回到項目中的 “構(gòu)建后操作”處,繼續(xù)進(jìn)行設(shè)置牺汤,如下圖:
其中的 “Project Recipient List” 是收件人列表辽旋,可根據(jù)實際需要添加,各個郵箱之間以逗號分隔即可(也可使用cc: or bcc: 的形式檐迟,點擊右側(cè)?可查看詳情)补胚。其余各項按圖中配置即可,如有特殊需要追迟,再針對性設(shè)置溶其。
<7> 如果想獲得輸出log,可通過下圖中的 “Attach Build Log” 來設(shè)置敦间。
<8> 點擊上圖中的 “Advanced Settings”握联,來進(jìn)一步設(shè)置觸發(fā)方式。如下圖每瞒,我選擇了當(dāng)構(gòu)建成功和失敗時金闽,都發(fā)送郵件通知指定對象。
<9> 在各種具體的觸發(fā)方式中剿骨,同樣可以做一些具體設(shè)置代芜。例如,想在不同的觸發(fā)方式下浓利,發(fā)送郵件給不同的人挤庇,那么就可以通過該功能實現(xiàn)。
例如贷掖,在觸發(fā)成功的情況下嫡秕,通知下面三人,可如下設(shè)置:
在觸發(fā)失敗的情況下苹威,僅通知特定一人昆咽,可如下設(shè)置:
(9)上述步驟都完成后,點擊 “Apply”->保存牙甫。
(10)當(dāng)你在(5)中設(shè)置的觸發(fā)時間點到了時掷酗,就會自動構(gòu)建項目,并打包ipa上傳窟哺。
(11)上傳后泻轰,可登錄http://fir.im/apps去查看,如果上傳成功且轨,顯示如下浮声,可打開預(yù)覽查看具體的更新時間:
(12)也可打開設(shè)定的郵箱虚婿,去驗證是否有收到郵件,一般郵件內(nèi)容如下泳挥,可點擊其中的 ” ipa下載地址” 去下載該APP: