Android 使用Jenkins(最新版)持續(xù)集成打包發(fā)包(MAC)

前言

??????每次寫完功能就要打包,因?yàn)轫?xiàng)目原因打包時(shí)間較長,所以就需要等待,搭完包之后還要把這個(gè)包發(fā)給測試,很不方便.那就想個(gè)辦法,實(shí)現(xiàn)一個(gè)悄悄拉取代碼,在后臺偷偷打包的方式,打完包直接生成一個(gè)二維碼測試下載安裝就好了.于是問了下度娘還真有,配置了一下午發(fā)現(xiàn)可以成功運(yùn)行,怕遺忘了所以記錄一下

一.環(huán)境搭建

1.配置Android ADB環(huán)境

??????關(guān)于Android整個(gè)開發(fā)環(huán)境的搭建碑韵,SDK的下載安裝,這里就不贅述了,配置adb環(huán)境也可以去百度一下,一大把,這里查看adb是否配置成功可以在終端輸入

 adb

顯示以下信息則證明配置成功.

2.配置Gradle環(huán)境

??????配置gradle環(huán)境可以看一下我之前寫的這篇文章Mac 配置gradle環(huán)境變量.
在終端上執(zhí)行g(shù)radle -version,查看是否配置成功文搂。

gradle -version

如顯示如下表示配置成功.

3.下載Jenkins

??????下載最新的版本(一個(gè) WAR 文件),官網(wǎng)下載地址Jenkins.
??????關(guān)于Jenkins的環(huán)境什么系統(tǒng)都支持,配置的方法也差不多.我選擇的直接使用war包的方式,因?yàn)榫W(wǎng)上有的說pkg的有問題,我就沒用.選擇Weekly的 Generic Java package(.war)這個(gè)選項(xiàng).把這個(gè)war包放到某個(gè)文件下,通過控制臺來到當(dāng)前的文件夾,在控制臺輸入

java -jar jenkins.war

注意:Jenkins 需要運(yùn)行 Java 5以及以上的版本厅各。執(zhí)行這個(gè)命令之后會(huì)有一個(gè)安裝過程,等一會(huì)就好了.顯示如下的結(jié)果就證明Jenkins已經(jīng)啟動(dòng)了.

以后每次啟動(dòng)都會(huì)調(diào)用這個(gè)命令行,我們可以把它寫成一個(gè)腳本,點(diǎn)擊就可以運(yùn)行.

4.配置Jenkins

1.插件安裝

??????在瀏覽器輸入localhost:8080 就可以看到上面的那個(gè)小老頭了,會(huì)讓你輸入密碼,此時(shí)來到控制臺就能找到密碼,然后會(huì)有一個(gè)安裝向?qū)?會(huì)讓選擇安裝全部插件還是自定義選擇安裝,這個(gè)大家隨意.然后就會(huì)讓你設(shè)置admin賬戶,如果不懂的話可以先跳過,使用默認(rèn)的admin賬戶,如果以后再登錄忘記admin賬戶密碼的話可以到.jenkins/secrets/目錄下的initialAdminPassword文件查看密碼.操作見下圖

完成設(shè)置之后,這是我的Jenkins頁面

其實(shí)大多數(shù)的插件我們都已經(jīng)安裝完了,點(diǎn)擊系統(tǒng)管理>插件管理>,像一些Git Plugin,Gradle Plugin,Android Lint 等插件均可以在已安裝插件中找到,如果找不到可以在可選插件中過濾出你想要安裝的插件,然后選擇安裝就可以.

2.環(huán)境變量配置

??????點(diǎn)擊系統(tǒng)管理>系統(tǒng)設(shè)置>,

向下滑,選擇環(huán)境變量,然后增加一個(gè)鍵值對,如圖

如果需要也可以配置一下Gradle的環(huán)境變量.

項(xiàng)目實(shí)戰(zhàn)

1.構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目

??????點(diǎn)擊左側(cè)菜單中的新建任務(wù),然后在新的界面輸入項(xiàng)目名字,選擇構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目選項(xiàng)完成創(chuàng)建

2.配置項(xiàng)目git地址

??????完成創(chuàng)建會(huì)跳到一個(gè)項(xiàng)目配置頁面,我們項(xiàng)目是用的gitlab,所以源碼管理我選擇的是git,在上面輸入你的git地址,如果有用SSH就自己add一下,可以選擇構(gòu)建的分支,直接輸入你的*/分支名字就好.點(diǎn)擊保存,完成git配置.

返回到主頁面,點(diǎn)擊立即構(gòu)建,就可以編譯你的項(xiàng)目了,一會(huì)就會(huì)構(gòu)建成功.

點(diǎn)擊那個(gè)#1進(jìn)去會(huì)看到一下變更記錄,點(diǎn)擊工作區(qū)可以看到你的源碼目錄

那你也肯定想知道構(gòu)建完成的目錄在哪里吧,點(diǎn)擊系統(tǒng)管理>系統(tǒng)設(shè)置>主目錄右側(cè)高級便可以看到構(gòu)建的目錄了

實(shí)際路徑/Users/Apple/.jenkins/workspace/HSLStock/

3.配置自動(dòng)拉取最新代碼

??????在構(gòu)建觸發(fā)器中铭污,有兩種自動(dòng)拉取代碼并編譯的策略:
1. 設(shè)置Poll SCM恤筛,設(shè)置定時(shí)器,定時(shí)檢查代碼更新彩郊,有更新則編譯,否則不編譯蚪缀。

第一個(gè)參數(shù)代表的是分鐘 minute秫逝,取值 0~59;
第二個(gè)參數(shù)代表的是小時(shí) hour询枚,取值 0~23违帆;
第三個(gè)參數(shù)代表的是天 day,取值 1~31金蜀;
第四個(gè)參數(shù)代表的是月 month刷后,取值 1~12;
最后一個(gè)參數(shù)代表的是星期 week渊抄,取值 0~7尝胆,0 和 7 都是表示星期天。
如H/5 * * * * 表示的就是每5分鐘檢查一次源碼變化护桦。
2.設(shè)置Build periodically含衔,周期性的執(zhí)行編譯任務(wù)。

4.編譯配置gradle

??????上面雖然編譯成功了二庵,但是你發(fā)現(xiàn)根本沒有看到APK文件贪染,所以還需要進(jìn)行下面的配置:增加構(gòu)建步驟,打開配置頁面,如果安裝gradle插件成功的話,應(yīng)該會(huì)出現(xiàn)下圖的Invoke Gradle script

${JENKINS_HOME}/workspace/${ITEM_FULL_NAME} 表示當(dāng)前.jenkins目錄下的workspace目錄眨猎,主要是存放代碼,如果你不知道你的怎么填你可以去系統(tǒng)設(shè)置看一下主目錄就能看到.一般${JENKINS_HOME}目錄位于當(dāng)前用戶目錄下抑进,OS X 系統(tǒng)路徑一般是/Users/用戶名/.jenkins/worksplace/; 再點(diǎn)擊立即構(gòu)建一般就會(huì)構(gòu)建成功强经,當(dāng)然當(dāng)那些第三方庫需要重新下載的話睡陪,編譯可能會(huì)很慢。這樣匿情,就能自動(dòng)在project下的app的build/outputs/apk下生成相應(yīng)的apk.

注意:編譯失斃计取?可能要解決以下2個(gè)問題:
1.gradle沒配置環(huán)境變量炬称。
2.因?yàn)橐话銇碚flocal.properties不會(huì)添加到版本庫汁果。 所以需要手動(dòng)copy到${WORKSPACE}下的Project目錄下(可參考自己Android Studio工程結(jié)構(gòu))。
如果構(gòu)建沒有成功也可以點(diǎn)#1這個(gè)選項(xiàng),然后點(diǎn)擊左側(cè)的控制臺輸出看一下構(gòu)建失敗的原因,這個(gè)控制臺的輸出是和我們的AS輸出一樣的.

5.上傳到測試平臺

我這里是選擇的上傳到蒲公英測試平臺,上傳方法可參考使用 Jenkins 插件上傳應(yīng)用到蒲公英.
??????這樣的一個(gè)自動(dòng)拉取代碼打包發(fā)包的過程就實(shí)現(xiàn)了.如有問題可以私信交流.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末玲躯,一起剝皮案震驚了整個(gè)濱河市据德,隨后出現(xiàn)的幾起案子鳄乏,更是在濱河造成了極大的恐慌,老刑警劉巖棘利,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件橱野,死亡現(xiàn)場離奇詭異,居然都是意外死亡善玫,警方通過查閱死者的電腦和手機(jī)水援,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茅郎,“玉大人蜗元,你說我怎么就攤上這事∠等撸” “怎么了奕扣?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長掌敬。 經(jīng)常有香客問我成畦,道長,這世上最難降的妖魔是什么涝开? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任循帐,我火速辦了婚禮,結(jié)果婚禮上舀武,老公的妹妹穿的比我還像新娘拄养。我一直安慰自己,他們只是感情好银舱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布瘪匿。 她就那樣靜靜地躺著,像睡著了一般寻馏。 火紅的嫁衣襯著肌膚如雪棋弥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天诚欠,我揣著相機(jī)與錄音顽染,去河邊找鬼。 笑死轰绵,一個(gè)胖子當(dāng)著我的面吹牛粉寞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播左腔,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼唧垦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了液样?” 一聲冷哼從身側(cè)響起振亮,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤巧还,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后坊秸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狞悲,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年妇斤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摇锋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,654評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡站超,死狀恐怖荸恕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情死相,我是刑警寧澤融求,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站算撮,受9級特大地震影響生宛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肮柜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一陷舅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧审洞,春花似錦莱睁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至痴晦,卻和暖如春南吮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背誊酌。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工部凑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人术辐。 一個(gè)月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓砚尽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親辉词。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評論 2 349

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