持續集成-jenkins 環境搭建

轉自:http://blog.jxdev.me/blog/2015/03/26/jian-xin-de-chi-xu-ji-cheng-zhi-lu-%5B%3F%5D-da-jian-jenkinshuan-jing/java

完成後結果

這個圖是我剛纔個人Jenkins服務器上截的圖,能看見左側的構建歷史.這只是第一步,之後還要加入最重要的自動化測試,纔算是一套完整的持續集成系統,那麼首先你得邁出第一步.我以我如今參與開發iOS項目爲例,記錄一下搭建Jinkens的步驟,若是能幫到你,那麼太好了.git

ScreenShot

最近接觸了時下最火的敏捷開發模式,讓整個團隊保持高效率,而且要爭取作到代碼隨時可發佈的狀態,而敏捷開發的一個重要的部分就是實現自動化測試以及自動化構建,儘快發現問題,把風險放到前期.在一個項目中,各個開發人員都會大量並且頻繁的提交代碼,而你的代碼會不會影響到其餘人的代碼,會不會形成一些錯誤甚至是崩潰的狀況,Jenkins會幫你把這些問題提前的暴露出來,Let’s do this!github

Jenkins

Jenkins 是一個開源項目,提供了一種易於使用的持續集成系統,使開發者從繁雜的集成中解脫出來,專一於更爲重要的業務邏輯實現上。同時 Jenkins 能實施監控集成中存在的錯誤,提供詳細的日誌文件和提醒功能,還能用圖表的形式形象地展現項目構建的趨勢和穩定性。過多的介紹就不詳細說了,更多的詳細信息請移步Jinkens官網.xcode

安裝

這裏要詳細說明一下,以前我是在官網下載的.pkg的安裝程序,而後雙擊安裝,安裝結束之後會在本地的/Users/Shared (Mac)下生成Jenkins的目錄,不過這樣的話,在最後執行Shell腳本Build的過程當中,沒有任何反應,在網絡上搜索的結果是多是由於權限不夠致使的,我遇到了這個問題,因此我不建議你們用這種安裝方式.也一點也不酷,對不對?那麼咱們採用第二種安裝方式:瀏覽器

brew install jenkins

對,咱們也用brew安裝Jenkins!很是簡單,很是Geek!這裏假定你的Mac已經安裝了Java,以前Mac是自帶Java的,不過到個某個版本以後,OS X再也不自帶Java了,你須要本身下載並安裝,過程很簡單,再也不詳細說明了.服務器

在安裝好Jenkins以後,一樣在命令行執行:網絡

java -jar /usr/local/opt/jenkins/libexec/jenkins.war

這是用來啓動Jenkins的,看見第一個單詞java了嗎?其實Jenkins是一個Java程序,這就是爲何我再上面說過的要安裝Java.這樣啓動的Jenkins不會在下次電腦重啓的時候自動啓動,你須要手動的設置一下,具體的請自行Google吧.測試

啓動

啓動Jenkins很是簡單,在瀏覽器輸入 http://localhost:8080/ 就能夠看見它簡陋的頁面了…這個圖我不是本身截取的,用了網上的一張圖片,不過樣子是同樣的.ui

ScreenShot

看了這個頁面,你說我說它簡陋過度嗎?this

插件

我以爲之因此Jenkins強大,真正強大的是它無所不及的插件,有了強大的插件,才能給你帶來最強悍的功能.若是你用Git來管理代碼,那麼太好了.既然是第一步,那咱們就按照最簡單的來,在左側菜單的系統設置中,找到插件管理.只安裝一個Git插件來獲取代碼.在插件頁面的可用插件裏搜索Git,安裝就好,過程太簡單,不須要詳細說明.

配置

插件安裝好了,接下來,咱們來配置項目吧.新建一個自由風格的軟件項目,而後你就會來到項目配置的頁面了.

ScreenShot

由於你安裝Git插件,因此你能夠在源碼管理裏看見Git的選項,勾選它,而後配置,在Repository URL裏填寫你遠程倉庫的地址,若是是私有倉的話,須要填寫驗證,用戶名和密碼.好比個人這個項目託管在開源中國的 Git服務上,而我專門爲Jenkins創建了一個用戶拉取代碼的用戶.另外要注意,你須要從哪一個分支拉取代碼. 好比我要從dev分支拉取代碼,在下面的Branches to build裏要寫上*/dev.

若是到這裏沒有問題的話,我建議你當即構建一下,看看能不能從代碼倉把代碼拉取回來,若是成功的話,你會看見相似第一張圖片左側的藍色小圓球,若是失敗,那麼小圓球是紅色的,說明你的代碼沒有被拉取成功,你能夠點擊小圓球右側,查看Console Output看看具體出錯在哪裏.

ScreenShot

接下來,配置一下構建觸發器,如上圖,這樣配置的意思就是,每隔30分鐘去代碼倉拉取一下代碼,若是兩次的代碼沒有差別,那麼不會構建,若是代碼有變化的話,會繼續自動構建.

ScreenShot

開始準備構建吧,在構建中新建一個Exceute Shell,由於是持續集成的第一步,因此只完成Build就能夠了, 在Command中輸入你所要執行的腳本吧.這裏要說明一下,最好先執行一下:

ls

查看一下當前目錄,由於當前的目錄可能不是你項目的.xcodeproj或者.xcworkspace文件所存在的目錄. 由於是構建iOS項目,因此利用Xcode提供的Xcodebuild就行,能夠只是build:

xcodebuild -worksapce TEST.xcworkspace -scheme TEST clean build

由於我用CocoaPods託管第三方類庫,因此要執行的是.xcworkspace,這句話的意思就是對當前目錄中的TEST項目裏面的Test Target 執行 clean 而後再 build.簡單吧?恩,第一步要慢慢來.

若是要生成.ipa文件也能夠,只是稍微麻煩一點:

xcodebuild -workspace TEST.xcworkspace -scheme TEST -destination generic/platform=iOS -configuration Release archive -archivePath /Users/jxdwinter/Desktop/TEST.xcarchive
xcodebuild -exportArchive -exportFormat ipa -archivePath /Users/jxdwinter/Desktop/TEST.xcarchive -exportPath /Users/jxdwinter/Desktop/"$(date +%Y%m%d%H%M%S).ipa" -exportProvisioningProfile 'TEST'

這兩句話會在個人桌面生成一個文件名爲構建日期ipa文件,值得注意的地方就是最後的exportProvisioningPrefile,若是是iOS開發的話,你應該明白是什麼意思吧?這也是最容易出錯的地方.這裏不是本文的重點,因此再也不贅述了.

再構建一下看看左側小圓球的顏色吧?若是成功的話,那麼恭喜你完成了第一步,之後還有不少要作,只是單純的build的話,那麼Jenkins就失去了它的價值了.若是失敗的話,那麼多是我沒寫明白…不過這真的很簡單,但願本文能給你點幫助.

相關文章
相關標籤/搜索