Mac下使用Jenkins+Gradle+Git實現(xiàn)持續(xù)集成、apk多渠道打包以及如何生成二維碼

前言:
記得剛到這家公司時银锻,看到打包還是由開發(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)以下界面

image.png

這個界面的提示工作很到位啊,連到哪個路徑下獲取initialAdminPassword都告訴你了傅瞻,好了踢代,這個時候就到該路徑下把initialAdminPassword生成的密碼取出來后,輸入就可以了嗅骄,如果你不知道怎么進入該路徑胳挎,有一個更簡單的辦法,下面告訴大家
image.png

當然啦溺森,這個完整的路徑你是無法進入的慕爬,因為secrets文件夾是沒有權(quán)限,這個時候我們就進入到Home文件夾就好了儿惫,然后在把secrets文件拷貝到桌面或者其他地方澡罚,這樣做事方便把initialAdminPassword取到,拷貝過程選擇同意就可以了肾请,
image.png

打開這個文件后留搔,我們就可以看到一串由數(shù)字和字母組合而成的東西了,然后直接拷貝到剛才打開Jenkins的界面輸入后點擊Continue按鈕铛铁,好了隔显,我們離自動打包又近一步了,
image.png

這里可以選擇安裝插件饵逐,或者是安裝Jenkins已經(jīng)提供要安裝的一些插件括眠,這里我們選擇Select plugins to install 就好了,因為我們只關(guān)心打包是否能用倍权,其他一概不管掷豺,安裝完成后會有這么一個界面展示在我們面前
image.png

填完后點擊“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.安裝插件
image.png

點擊管理插件進入到下一個頁面

image.png

然后選到可選插件钞护,在過濾那搜索框搜索我們所需要的插件盖喷,


image.png

等待安裝完成后,可以馬上重啟患亿,但是最后就等所有的插件都安裝完了传蹈,在做重啟吧,這樣就可以省去很多時間步藕,提高我們的效率惦界。
完成之后,接下來就是配置環(huán)境的問題了咙冗,選到“Jenkins -- 系統(tǒng)管理 -- Global Tool Configuration”,有幾個是我們需要安裝的沾歪,如果沒有就選擇默認吧,

分別是JDK ,Git ,Gradle,路徑都是你自己電腦上面安裝的路徑雾消,Name可隨便定義灾搏,不過還是建議起一眼就能看懂的
91f07921-d4ef-4bf4-bdf7-3b0a4e4a6c98.png
Gradle的路徑,這個是在我電腦上面的路徑立润,把這個配上就可以了狂窑。
image.png

配置好這些環(huán)境后,我們離自動打包又近一步了桑腮,接下來就可以新建一個項目進行測試了泉哈。

image.png
image.png

然后開始我們的一些打包配置


image.png
image.png

Git代碼倉庫管理配置

image.png

如果沒有可以選擇的用戶名和密碼,就點擊旁邊的add按鈕破讨,在里面添加用戶名和密碼,然后直接add保存就好了丛晦。


image.png

構(gòu)建環(huán)境的選擇,下面就直接粘貼圖片了提陶,

把Tasks里面的代碼粘貼出來烫沙,方便拷貝

clean assemble${PRODUCT_FLAVORS}${BUILD_TYPE}
--stacktrace
--debug
image.png
image.png

想想如果打包編譯完成后,直接在打包那邊顯示一個二維碼出來隙笆,是不是覺得特別高大上锌蓄,特別牛逼
升筏,接下里就教大家去完成這個任務,其實這個也不難瘸爽,因為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>
image.png

然后點擊保存,

image.png

接下來就是等待結(jié)果的時候辆沦,哈哈昼捍,激動人心的時刻到了

image.png

至此,我們的整個Jenkins自動化打包工作就已經(jīng)完成啦肢扯。

PS:編譯Android項目的過程妒茬,可能會出現(xiàn)查找local.profile文件的問題,然后我們需要在Jenkins -- 系統(tǒng)管理 -- 系統(tǒng)設(shè)置里面找到Environment variables蔚晨,然后設(shè)置一下ANDROID_HOME就可以拉乍钻。

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市铭腕,隨后出現(xiàn)的幾起案子银择,更是在濱河造成了極大的恐慌,老刑警劉巖累舷,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浩考,死亡現(xiàn)場離奇詭異,居然都是意外死亡被盈,警方通過查閱死者的電腦和手機析孽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來只怎,“玉大人袜瞬,你說我怎么就攤上這事∩肀ぃ” “怎么了邓尤?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盾沫。 經(jīng)常有香客問我裁赠,道長,這世上最難降的妖魔是什么赴精? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任佩捞,我火速辦了婚禮,結(jié)果婚禮上蕾哟,老公的妹妹穿的比我還像新娘一忱。我一直安慰自己莲蜘,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布帘营。 她就那樣靜靜地躺著票渠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪芬迄。 梳的紋絲不亂的頭發(fā)上问顷,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音禀梳,去河邊找鬼杜窄。 笑死,一個胖子當著我的面吹牛算途,可吹牛的內(nèi)容都是我干的塞耕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嘴瓤,長吁一口氣:“原來是場噩夢啊……” “哼扫外!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起廓脆,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤筛谚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后停忿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刻获,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年瞎嬉,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝎毡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡氧枣,死狀恐怖沐兵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情便监,我是刑警寧澤扎谎,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站烧董,受9級特大地震影響毁靶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逊移,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一预吆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胳泉,春花似錦拐叉、人聲如沸岩遗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宿礁。三九已至,卻和暖如春蔬芥,著一層夾襖步出監(jiān)牢的瞬間梆靖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工笔诵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涤姊,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓嗤放,卻偏偏與公主長得像,于是被迫代替她去往敵國和親壁酬。 傳聞我的和親對象是個殘疾皇子次酌,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

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