基于Jenkins搭建Android持續(xù)集成打包工具


image.png

本文主要介紹在Mac上使用Jenkins+Git+Gradle插件搭建Android持續(xù)集成打包工具

準(zhǔn)備工作

這個階段主要包括各種環(huán)境的搭建,主要是指安裝JDK、SDK帜平、Jenkins、配置Jenkins等梅鹦。

1裆甩、Java環(huán)境

jenkins運(yùn)行環(huán)境依賴Java環(huán)境,所以安裝Jenkins之前必須安裝JDK和JRE齐唆。安裝好之后配置環(huán)境變量淑掌。這里就不詳細(xì)介紹了。

2蝶念、安裝Jenkins

打開terminal抛腕,輸入brew install jenkins命令自動下載安裝Jenkins服務(wù)芋绸。

image.png

安裝成功之后的提示語如下:


image.png

3、配置Jenkins

  1. 在terminal輸入命令jenkins來啟動Jenkins服務(wù)担敌。啟動成功的界面如下:

    image.png

  2. 服務(wù)啟動后摔敛,打開瀏覽器,在地址中輸入localhost:8080全封,可以看到會提示輸入Jenkins管理員密碼马昙,直接把對應(yīng)路徑下的密碼copy一下,然后輸入進(jìn)去即可刹悴。

  3. 密碼輸入之后行楞,出現(xiàn)一個等待頁面,等了一會土匀,出現(xiàn)一個離線頁面:

    image.png

Google一下子房,發(fā)現(xiàn)是Jenkins沒有辦法正常聯(lián)網(wǎng),可以通過下面的辦法解決:
打開一個新Tab就轧,輸入網(wǎng)址http://localhost:8080/pluginManager/advanced证杭,進(jìn)入代理設(shè)置頁面,頁面最底下有個升級站點妒御,把鏈接中的https改為http解愤。然后重啟服務(wù)即可。

image.png

  1. 重啟服務(wù)后乎莉,就進(jìn)入到自定義Jenkins頁面送讲,該頁面是選擇安裝插件。如果對Jenkins不熟悉惋啃,直接安裝推薦的插件(多數(shù)情況下可以滿足使用需求)哼鬓。


    image.png
  2. 安裝好插件,進(jìn)入創(chuàng)建管理員界面肥橙,創(chuàng)建一個管理員用戶


    image.png
  3. 實例配置魄宏,暫使用默認(rèn)值:


    image.png
  4. 配置完成秸侣,可以開始使用Jenkins了


    image.png

進(jìn)入登錄頁存筏、首頁


image.png
image.png

4、配置JDK味榛、SDK椭坚、Gradle

  1. 進(jìn)入系統(tǒng)管理->系統(tǒng)設(shè)置頁面,找到全局屬性模塊搏色,添加一個環(huán)境變量ANDROID_HOME:

    image.png

  2. 進(jìn)入系統(tǒng)管理->全局工具配置頁面善茎,新增JDK和Gradle工具,如圖:

    image.png

image.png

配置Gradle工具時注意勾選自動安裝選項频轿。

搭建Android持續(xù)集成打包工程

1垂涯、新建任務(wù)

Jenkins構(gòu)建都是以任務(wù)(job)為單位烁焙,所以需要新建一個任務(wù)。


image.png

如圖有幾種構(gòu)建類型可以選擇耕赘,最常用的是第一種骄蝇,也是本文我要介紹的Demo使用的類型。(我們實際項目中使用的是流水線pipeline構(gòu)建方式)操骡。

2九火、配置任務(wù)

任務(wù)創(chuàng)建好之后,進(jìn)入任務(wù)界面册招,如圖:


image.png

點擊配置按鈕岔激,進(jìn)入配置頁面:


image.png

如圖可知,配置分為General是掰、源碼管理虑鼎、構(gòu)建觸發(fā)器、構(gòu)建環(huán)境冀惭、構(gòu)建震叙、構(gòu)建后操作幾個部分。下面我們簡單介紹這幾個模塊(Jenkins功能強(qiáng)大散休,可選配置很多媒楼,本文不可能完全介紹,而且本人也沒有用到那么多配置戚丸,只能把本Demo用到的配置介紹一下划址,其他的需要各位在實際用的過程中去研究)。

  1. General是通用配置限府,可以添加項目描述夺颤。
    image.png

參數(shù)化構(gòu)建過程選項可能會比較常用,里面可以配置一些參數(shù)胁勺,并且定義好參數(shù)的可取值和默認(rèn)值世澜,每次構(gòu)建的時候可以選擇對應(yīng)的值傳入構(gòu)建腳本中,實現(xiàn)不同的構(gòu)建內(nèi)容署穗。舉個例子:應(yīng)用有三種buildType:Debug寥裂、Preview、Release案疲,就可以在此處配置一個BUILD_TYPE封恰,提供這三個可選值,選擇之后褐啡,可以傳入到腳本中使用assemble${BUILD_TYPE}诺舔。
如果不使用自定義的工作空間,jenkins的默認(rèn)工作空間是/Users/user_zf/.jenkins/workspace/Marble_Freestyle

  1. 源碼管理
    必須得有項目的源碼低飒,才能構(gòu)建項目许昨。多數(shù)情況下,源碼是存放在Git服務(wù)器上褥赊。此處需要配置三個信息:倉庫地址车要、憑證、構(gòu)建分支崭倘。
    image.png

倉庫地址很簡單翼岁,就是存放項目源碼的Git倉庫。
構(gòu)建分支也很簡單司光,就是用來構(gòu)建打包的Git分支琅坡。
憑證是指對該Git倉庫的訪問權(quán)限,可以在Jenkins中配置:

image.png

常用的憑證有兩種:Username with passwordSSH Username with private key残家。
如果Repository Url以https開頭榆俺,則使用第一種憑證。如果是以ssh開頭坞淮,則使用第二種憑證茴晋。第一種憑證很簡單,直接配置自己Git服務(wù)器的用戶名和密碼即可回窘。第二種復(fù)雜一些诺擅,如圖:

image.png

除了Git用戶名之外,還需要填寫一個Private Key啡直,這是什么東西呢烁涌?
不用著急,慢慢看>泼佟撮执!
如果是用ssh方式訪問Git倉庫,需要讓Git服務(wù)器認(rèn)識你的電腦才行舷丹,否則不能成功訪問抒钱。所以需要在安裝Jenkins的電腦上用命令生成一個秘鑰對,把公鑰添加到Git服務(wù)器颜凯,私鑰配置在jenkins服務(wù)上谋币,這樣就可以正常訪問Git倉庫了。
生成秘鑰對的命令如下:

cd .ssh //在用戶目錄下輸入該命令装获,進(jìn)入存放秘鑰的目錄
rm id_rsa //刪除私鑰(可能原來已經(jīng)存在)
rm id_rsa.pub //刪除公鑰(可能原來已經(jīng)存在)
ssh-keygen -t rsa -C "git用戶名" //一路回車 生成新用戶的公鑰和私鑰
cat id_rsa/id_rsa.pub //查看公鑰和私鑰的內(nèi)容

生成秘鑰對之后瑞信,可以查看一下:


image.png

在Git服務(wù)器上添加公鑰厉颤,讓Git服務(wù)器認(rèn)識該電腦穴豫,我們使用的Git服務(wù)是GitLab,進(jìn)入GitLab的Profile Settings->SSH Keys界面Add SSH Key:

image.png

image.png

id_rsa.pub的內(nèi)容全部拷貝到Key輸入框中保存。
在Jenkins上配置憑證精肃,然后把id_rsa中的內(nèi)容全部拷貝到上面提到的Private Key輸入框中秤涩,生成一個憑證。
在Git的憑證處選擇該憑證司抱,就可以在構(gòu)建時成功訪問Git倉庫筐眷,并且拉取代碼到Job的工作空間中。

Repository Url习柠、憑證匀谣、分支填寫完畢之后,最好勾選一下Shallow clone资溃,拉取代碼過程中不會拉取該分支歷史版本的代碼武翎。否則項目過大,歷史版本很多溶锭,需要拉取很長時間宝恶,一旦超過10分鐘,就直接報Timeout異常趴捅。當(dāng)然垫毙,也可以包超時時間設(shè)置長一點來解決超時異常。

  1. 構(gòu)建觸發(fā)器拱绑,從字面上很好理解综芥,就是什么時候出發(fā)構(gòu)建任務(wù)。此處有一些選項猎拨,我們用到的是定時構(gòu)建
    image.png

可以點擊問號查看語法毫痕。例如 H 7-15/5 * * 0-6,表示周一到周六每天早上07:xx迟几、中午12:xx打一個包 消请。5個參數(shù)分別表示:

  • 分鐘 0-59
  • 小時 0-23
  • DOM day of month 1-31
  • MONTH 1-12
  • DOW day of week 0-7

如果什么都不選,可以任務(wù)主界面手動觸發(fā)構(gòu)建任務(wù)类腮。

  1. 構(gòu)建環(huán)境可以不用配置
  2. 構(gòu)建臊泰,表示構(gòu)建過程⊙潦啵可以自定義構(gòu)建步驟缸逃,如圖:
    image.png

通過不同插件,可以執(zhí)行不同的命令厂抽。Android的打包任務(wù)相信大家都不陌生需频,即assembleDebu / assembleRelease

  1. 構(gòu)建后操作筷凤,構(gòu)建打包完成之后昭殉,可以做很多有用的操作苞七,比如歸檔Apk文件、郵件/釘釘通知相關(guān)人員挪丢、打多渠道包......

3蹂风、執(zhí)行任務(wù)

上面介紹過,可以通過條件觸發(fā)構(gòu)建任務(wù)乾蓬,也可以手動觸發(fā)惠啄。在job主頁,點擊立即構(gòu)建即可構(gòu)建任務(wù)任内。

image.png

image.png

構(gòu)建成功之后就可以在app的build目錄下找到對應(yīng)的Apk文件撵渡。

至此,整個搭建過程介紹完畢了死嗦,本文演示的Demo是最基本的構(gòu)建流程姥闭,在實際的項目持續(xù)集成中,往往比這個復(fù)雜越走,但了解基本的操作流程之后棚品,就可以自行研究Jenkins中更加好用的功能。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末廊敌,一起剝皮案震驚了整個濱河市铜跑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌骡澈,老刑警劉巖锅纺,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肋殴,居然都是意外死亡囤锉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門护锤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來官地,“玉大人,你說我怎么就攤上這事。” “怎么了多矮?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長亏较。 經(jīng)常有香客問我,道長掩缓,這世上最難降的妖魔是什么雪情? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮你辣,結(jié)果婚禮上巡通,老公的妹妹穿的比我還像新娘尘执。我一直安慰自己,他們只是感情好扁达,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蠢熄,像睡著了一般跪解。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上签孔,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天叉讥,我揣著相機(jī)與錄音,去河邊找鬼饥追。 笑死图仓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的但绕。 我是一名探鬼主播救崔,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼捏顺!你這毒婦竟也來了六孵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤幅骄,失蹤者是張志新(化名)和其女友劉穎劫窒,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拆座,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡主巍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挪凑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片孕索。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖躏碳,靈堂內(nèi)的尸體忽然破棺而出檬果,到底是詐尸還是另有隱情,我是刑警寧澤唐断,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布选脊,位于F島的核電站,受9級特大地震影響脸甘,放射性物質(zhì)發(fā)生泄漏恳啥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一丹诀、第九天 我趴在偏房一處隱蔽的房頂上張望钝的。 院中可真熱鬧翁垂,春花似錦、人聲如沸硝桩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碗脊。三九已至啼肩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衙伶,已是汗流浹背祈坠。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留矢劲,地道東北人赦拘。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像芬沉,于是被迫代替她去往敵國和親躺同。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

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