Mac環(huán)境下Android的Jenkins自動(dòng)化打包以及郵件通知

背景

??當(dāng)時(shí)在學(xué)習(xí)如何用jenkins進(jìn)行自動(dòng)化打包的時(shí)候,去網(wǎng)上找了各種資料,感覺比較零碎。所以這里我將整個(gè)流程完整的梳理一遍


一、下載安裝jenkins

這里有兩種方法可以用。第一種操作方便,可以直接下載安裝包,但是安裝包會(huì)有一些莫名的問題。第二種操作繁瑣一點(diǎn),需要操作命令行,直接命令行安裝:

  1. 直接登錄官網(wǎng)下載:
    jenkins的官網(wǎng)下載地址:https://jenkins.io/download/
    因?yàn)檫@里是Mac下面所以需要選擇MacOS的版本:(左邊是穩(wěn)定版本,右邊是測(cè)試版本,所以一般都是選擇左邊的)
    1-1-1.png

    下載完成以后直接點(diǎn)擊安裝就可以了。之后在瀏覽器輸入鏈接:http://localhost:8080 就行
  2. 命令行下載安裝(推薦使用):
    ??①.使用brew下載安裝Jenkins(如果事先沒有安裝過brew工具的童鞋可以參考這篇文章):
    1-2-1.jpg
1-2-2.jpg

我這邊是因?yàn)橹鞍惭b過了,所以這里會(huì)提示已安裝,如果是沒有安裝過的會(huì)提示XXfiles,XXMB,built in XX minute XX seconds.
??②.安裝完成后,在終端輸入Jenkins啟動(dòng):

1-2-3.png

這個(gè)地方可能會(huì)出現(xiàn)一個(gè)錯(cuò)誤,由于Jenkins安裝后的端口號(hào)是8080,所以很容易會(huì)跟其他服務(wù)的端口號(hào)沖突,這個(gè)時(shí)候就需要修改端口號(hào),命令行輸入(本文默認(rèn)全部使用8080端口)

vim /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist

打開以后如下圖所示(初次使用vim的小伙伴可以注意下,在進(jìn)入vim編輯器以后,需要隨便敲一個(gè)字符才能進(jìn)入編輯模式,敲ESC鍵,退出編輯模式。輸入:wq保存并退出。有興趣了解更深的小伙伴可以參考linux VIM基本命令

1-2-4.png

進(jìn)入編輯模式,修改--httpPort=XXXX端口號(hào)可以盡量選擇生僻點(diǎn)的,避免跟其他端口沖突
??③.打開瀏覽器輸入鏈接:http://localhost:8080就行了

二、Jenkins的環(huán)境配置

  1. 打開頁面首先進(jìn)入的是一個(gè)解鎖頁面,這里由于我之前已經(jīng)配置好了,這個(gè)頁面不會(huì)出現(xiàn),所以我從網(wǎng)上找了張圖,大概就是這個(gè)樣子的:


    2-1-1.png

路徑會(huì)有所不用,Mac下面路徑這個(gè)

/Users/你的Mac用戶名/.jenkins/secrets/initialAdminPassword

在這個(gè)路徑下找到對(duì)應(yīng)的密碼輸入

  1. 之后進(jìn)入插件安裝的頁面,這個(gè)頁面下直接選擇[安裝推薦的插件]?;緵]什么問題,如果出現(xiàn)插件安裝失敗,可以參考這篇博客Jenkins插件下載失敗兩種處理辦法.
  2. 接下來就是環(huán)境變量的配置:
    ??①.首先點(diǎn)擊左側(cè)系統(tǒng)管理,看到系統(tǒng)設(shè)置,點(diǎn)擊進(jìn)入(無視掉上面的警告和提示吧,對(duì)主流程沒什么影響):
    2-3-1.png

    ??②.進(jìn)入系統(tǒng)設(shè)置頁面
    2-3-2.png

選擇環(huán)境變量,點(diǎn)擊Add,設(shè)置SDK的環(huán)境變量,Name的話一定要輸入ANDROID_HOME,Value就是SDK當(dāng)前SDK所在的目錄.


2-3-3.png

設(shè)置Jenkins的URL,如果是本機(jī)的jenkins,那么直接設(shè)置localhost:8080。如果是服務(wù)器上面的Jenkins,那么設(shè)置服務(wù)器的IP就OK了。
設(shè)置郵箱地址,這里設(shè)置的是系統(tǒng)管理員郵箱,下面有地方會(huì)用到。要確保設(shè)置正確。


2-3-4.png



上面的Extended E-mail Notification和下面的郵件通知輸入的內(nèi)容保持一致即可


2-3-5.png

SMTP服務(wù)器就是上面系統(tǒng)管理員郵箱的SMTP,本文選擇的是網(wǎng)易163郵箱,所以設(shè)置的是smtp.163.com。如果是QQ郵箱,那么設(shè)置的是smtp.qq.com。后綴就是郵箱地址@后面的內(nèi)容。這里重點(diǎn)說明一下用戶名需要跟系統(tǒng)管理員郵箱保持一致,而且密碼是各大郵箱的授權(quán)碼,并不是郵箱的登錄密碼,要切記,否則郵件就會(huì)發(fā)送失敗。其他就按照?qǐng)D示寫就可以了。然后點(diǎn)擊保存。
附:
網(wǎng)易163郵箱授權(quán)碼獲取教程
QQ郵箱授權(quán)碼獲取教程
新浪郵箱授權(quán)碼獲取教程
阿里云郵箱授權(quán)碼獲取教程
谷歌郵箱授權(quán)碼獲取教程

??③.系統(tǒng)管理->全局工具配置

2-3-6.png

JDK installations一欄里面點(diǎn)擊Add JDK,Name隨便取,不過最好對(duì)應(yīng)好版本號(hào);JAVE_HOME就設(shè)置為當(dāng)前Mac下Java的安裝路徑。當(dāng)然也可以設(shè)置成自動(dòng)安裝


2-3-7.png

git一欄配置:Path to Git executable里面設(shè)置的就是Git的安裝路徑(不知道Git安裝目錄的小伙伴可以參考這篇文章Mac和Windows快速查看git安裝目錄


2-3-8.png

gradle配置:一樣名字最好跟著版本號(hào),GRADLE_HOME就設(shè)置為gradle的安裝目錄


2-3-9.png

Maven庫的配置(如果項(xiàng)目里面沒有用到maven庫,這一項(xiàng)可不必添加):同上
最后點(diǎn)擊保存


三、項(xiàng)目配置

  1. 新建任務(wù):


    3-1-1.png

輸入應(yīng)用名字,選擇構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目,點(diǎn)擊OK

  1. 進(jìn)入項(xiàng)目配置頁面:


    3-2-1.png

(本文選擇的是git,如果有小伙伴是用SVN的,需要選擇第三個(gè)radiobutton:Subversion.)輸入git服務(wù)器上面可以clone的項(xiàng)目的地址。
然后添加證書:


3-2-2.png

類型如圖設(shè)置,UserName和Password填寫Git服務(wù)器上面你登錄的用戶名和密碼,點(diǎn)擊添加就OK了。

  1. 項(xiàng)目配置頁面往下拉,有個(gè)Add build step按鈕,點(diǎn)擊選擇Invoke Gradle script。出現(xiàn)下圖所示:


    3-3-1.png

先選擇Invoke Gradle:Gradle Version里面選擇之前系統(tǒng)設(shè)置里面配置好的那個(gè)Gradle(這個(gè)時(shí)候Gradle的名字增加版本號(hào)的優(yōu)勢(shì)就體現(xiàn)出來了,你可以選擇你想要的版本的gradle)
在選擇Use Gradle Wrapper:Tasks里面填寫build


此時(shí)需要點(diǎn)擊保存,然后立即構(gòu)建項(xiàng)目,將項(xiàng)目從git上面拉下來到j(luò)enkins目錄下。然后在重新打開配置頁面,頁面下拉到同一個(gè)位置,右下角的Advanced按鈕點(diǎn)擊出現(xiàn)如下畫面:

3-3-2.png

在jenkins目錄下面找到剛才從git上面下拉的項(xiàng)目的路徑,將項(xiàng)目中的build.gradle 路徑寫入Build File里面

  1. 繼續(xù)往下拉,有個(gè)Add post-build action按鈕,點(diǎn)擊按鈕選擇Editable Email Notification,然后點(diǎn)擊最下面Advanced settings按鈕,出現(xiàn)如下圖示:


    3-4-1.png

點(diǎn)擊Add Trigger選擇發(fā)送郵件的時(shí)機(jī),我這里選擇了總是,也就是說只要Jenkins進(jìn)行一次打包,不論成功失敗都會(huì)發(fā)送一次郵件。然后點(diǎn)擊Advanced按鈕:


3-4-2.png

Add按鈕點(diǎn)擊選擇要發(fā)送郵件的集合,本文選擇了開發(fā)者和接受者列表集合。
接下來設(shè)置郵件接收列表集合。Content里面的內(nèi)容根據(jù)項(xiàng)目需求填寫,其他的可以直接按照如圖所示填寫即可。
最后點(diǎn)擊保存


PS:另外點(diǎn)擊Add post-build action可以再設(shè)置E-mail Notification,設(shè)置對(duì)應(yīng)的郵箱。不過我試了下在沒有設(shè)置這個(gè)的情況下,Jenkins依然可以打包發(fā)送郵件,只是多了個(gè)警告,不知道哪位大佬可以解惑一下

Not sending mail to unregistered user xxx@qq.com because your SCM claimed this was associated with a user ID ‘xxx' which your security realm does not recognize; you may need changes in your SCM plugin
Sending email to: xxx@qq.com

四、項(xiàng)目運(yùn)行

4-1.png

左側(cè)菜單欄點(diǎn)擊立即構(gòu)建,Jenkins就會(huì)進(jìn)行自動(dòng)化打包了,耐心等候幾十秒到兩三分鐘左右的時(shí)間,打包完成后會(huì)在郵箱里面收到一封郵件。打包log最后出現(xiàn):

Sending email for trigger: Always
Sending email to: XXX@qq.com
Finished: SUCCESS

就代表打包順利完成。

參考博客:

Android 使用 Jenkins 實(shí)現(xiàn)自動(dòng)化打包【流程】&【踩坑】
MAC上搭建Jenkins實(shí)現(xiàn)Android自動(dòng)打包
Jenkins 配置自動(dòng)發(fā)送郵件,測(cè)試郵件發(fā)送失敗
Mac 使用HomeBrew安裝的Jenkins修改端口號(hào)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作為一名Android程序猿,能偷懶時(shí)是一定要偷懶的。大家在開發(fā)中一定遇到過:測(cè)試說:幫我打個(gè)包吧,產(chǎn)品說:幫我打...
    小朱v閱讀 7,101評(píng)論 3 14
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,034評(píng)論 25 709
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,990評(píng)論 2 59
  • 愉快的晚餐后,回到家,看到亞萍發(fā)的一遍薦讀文章《為什么你的孩子不懂得心疼你》。 文章是老生常談,無非是一個(gè)非常普遍...
    風(fēng)從南方來1閱讀 513評(píng)論 2 1
  • 裝飾一新的牢籠 關(guān)著各式各樣的動(dòng)物 它們犧牲自由 為牢籠外的人們換來歡樂 其實(shí),在它們看來 人類何嘗不也生活在牢籠...
    霍永思閱讀 310評(píng)論 0 4

友情鏈接更多精彩內(nèi)容