前言:
記得剛到這家公司時银锻,看到打包還是由開發(fā)人員進行打包永品,然后在把APK發(fā)給測試,當時就覺得這是一個占用猿子們的時間击纬,因為在前東家那邊都在使用Jenkins自動打包的鼎姐。其實作為程序員,他們也是喜歡偷懶的更振,如果可以把打包工作做到自動化炕桨,這樣就可以解決占用開發(fā)人員打包的時間了,當時也提過使用Jenkins自動化打包肯腕,然后被拒了献宫,可能是由于剛到這家公司的原因吧,也是可以理解為什么會拒絕的实撒,就在上周姊途,當再一次提起后,居然就答應了知态,好了捷兰,口水都吐完了。接下來開始介紹如何通過借助Jenkins這個平臺负敏,進行自動化打包部署贡茅。
接觸一個新東西之前你總得知道它是什么,它能做什么吧其做,那什么是Jenkins呢顶考,它能做什么呢。
Jenkins簡介
Jenkins是一個開源項目妖泄,提供了一種易于使用的持續(xù)集成系統(tǒng)驹沿,使開發(fā)者從繁雜的集成中解脫出來,專注于更為重要的業(yè)務邏輯實現(xiàn)上浮庐。同時Jenkins能實現(xiàn)監(jiān)控集成中存在的錯誤,提供詳細的日志文件和提醒功能,還能用圖表的形式形象地展示項目構(gòu)建的趨勢和穩(wěn)定性审残。Jenkins的前身是Hudson梭域,是一個可擴展的持續(xù)集成引擎。ps:更詳細的介紹請看官網(wǎng) https://jenkins.io/
進入正題
這里用的環(huán)境是在Mac下面完成的搅轿,集成Jenkins有多種方式病涨,這里講解單獨使用Jenkins集成的環(huán)境,
單獨使用Jenkins璧坟,https://jenkins.io/先到官網(wǎng)上面下載一個pkg的安裝包既穆,或者是用指令直接安裝,下載完pkg安裝包后雀鹃,然后直接打開安裝就可以了幻工,過程中全部選擇繼續(xù)或者同意,安裝成功后就會自動啟動Jenkins啦黎茎,是不是覺得很方便呢囊颅,
第一次會出現(xiàn)以下界面
這個界面的提示工作很到位啊,連到哪個路徑下獲取initialAdminPassword都告訴你了傅瞻,好了踢代,這個時候就到該路徑下把initialAdminPassword生成的密碼取出來后,輸入就可以了嗅骄,如果你不知道怎么進入該路徑胳挎,有一個更簡單的辦法,下面告訴大家
當然啦溺森,這個完整的路徑你是無法進入的慕爬,因為secrets文件夾是沒有權(quán)限,這個時候我們就進入到Home文件夾就好了儿惫,然后在把secrets文件拷貝到桌面或者其他地方澡罚,這樣做事方便把initialAdminPassword取到,拷貝過程選擇同意就可以了肾请,
打開這個文件后留搔,我們就可以看到一串由數(shù)字和字母組合而成的東西了,然后直接拷貝到剛才打開Jenkins的界面輸入后點擊Continue按鈕铛铁,好了隔显,我們離自動打包又近一步了,
這里可以選擇安裝插件饵逐,或者是安裝Jenkins已經(jīng)提供要安裝的一些插件括眠,這里我們選擇Select plugins to install 就好了,因為我們只關(guān)心打包是否能用倍权,其他一概不管掷豺,安裝完成后會有這么一個界面展示在我們面前
填完后點擊“Save and Finish”,至此捞烟,我們的第一步工作才算真正完成,
2.下面給大家介紹需要使用到的一些插件当船,不多說了题画,上來就是干
注意:列表中為主要插件,而Jenkins的插件是有依賴關(guān)系的德频,安裝一個插件可能要先安裝它依賴的插件苍息,否則會安裝失敗。在可選插件勾選列表中的插件即可壹置,依賴插件會自動下載竞思,是不是很棒。
Git plugin
Gradle Plugin
Email Extension Plugin
description setter plugin
build-name-setter
user build vars plugin
Post-Build Script Plug-in
Branch API Plugin
SSH plugin
Scriptler
Dynamic Parameter Plug-in
Git Parameter Plug-In
Git Changelog
3.安裝插件
點擊管理插件進入到下一個頁面
然后選到可選插件钞护,在過濾那搜索框搜索我們所需要的插件盖喷,
等待安裝完成后,可以馬上重啟患亿,但是最后就等所有的插件都安裝完了传蹈,在做重啟吧,這樣就可以省去很多時間步藕,提高我們的效率惦界。
完成之后,接下來就是配置環(huán)境的問題了咙冗,選到“Jenkins -- 系統(tǒng)管理 -- Global Tool Configuration”,有幾個是我們需要安裝的沾歪,如果沒有就選擇默認吧,
分別是JDK ,Git ,Gradle,路徑都是你自己電腦上面安裝的路徑雾消,Name可隨便定義灾搏,不過還是建議起一眼就能看懂的
Gradle的路徑,這個是在我電腦上面的路徑立润,把這個配上就可以了狂窑。
配置好這些環(huán)境后,我們離自動打包又近一步了桑腮,接下來就可以新建一個項目進行測試了泉哈。
然后開始我們的一些打包配置
Git代碼倉庫管理配置
如果沒有可以選擇的用戶名和密碼,就點擊旁邊的add按鈕破讨,在里面添加用戶名和密碼,然后直接add保存就好了丛晦。
構(gòu)建環(huán)境的選擇,下面就直接粘貼圖片了提陶,
把Tasks里面的代碼粘貼出來烫沙,方便拷貝
clean assemble${PRODUCT_FLAVORS}${BUILD_TYPE}
--stacktrace
--debug
想想如果打包編譯完成后,直接在打包那邊顯示一個二維碼出來隙笆,是不是覺得特別高大上锌蓄,特別牛逼
升筏,接下里就教大家去完成這個任務,其實這個也不難瘸爽,因為Jenkins的插件已經(jīng)幫我們做好了仰冠,我們只需要做些改動就可以了,首先我們需要下載一個插件“description setter plugin”然后做下面的配置蝶糯,
dir='/Users/admin/data/jenkins/workspace/APP/xxx/app/build/outputs/apk'
domain='/Users/admin/data/jenkins/workspace/APP/xxx/app/build/outputs/apk'
uri=`ls $dir`
#type='0release'
#if [ "$#${BUILD_TYPE}" != "$type" ]; then
#curl -F "file=@$domain/$uri" -F "uKey=ukey" -F "_api_key=api_key" http://www.pgyer.com/apiv1/app/upload
#fi
RESULT=$(curl -F "file=@$domain/$uri" -F "uKey=ukey" -F "_api_key=api_key" http://www.pgyer.com/apiv1/app/upload)
appQRCodeURL=$(echo "$RESULT" | sed "s/.*\"appQRCodeURL\":\([^,}]*\).*/\1/g")
merchantUrl=$(echo $appQRCodeURL | sed 's:\\\/:\/:g')
echo Desc: $merchantUrl
Set build description 的代碼
^Desc: (.*)
<img src=\1>
然后點擊保存,
接下來就是等待結(jié)果的時候辆沦,哈哈昼捍,激動人心的時刻到了
至此,我們的整個Jenkins自動化打包工作就已經(jīng)完成啦肢扯。
PS:編譯Android項目的過程妒茬,可能會出現(xiàn)查找local.profile文件的問題,然后我們需要在Jenkins -- 系統(tǒng)管理 -- 系統(tǒng)設(shè)置里面找到Environment variables蔚晨,然后設(shè)置一下ANDROID_HOME就可以拉乍钻。