背景
??當(dāng)時在學(xué)習(xí)如何用jenkins進行自動化打包的時候,去網(wǎng)上找了各種資料倦畅,感覺比較零碎遮糖。所以這里我將整個流程完整的梳理一遍
一、下載安裝jenkins
這里有兩種方法可以用叠赐。第一種操作方便欲账,可以直接下載安裝包屡江,但是安裝包會有一些莫名的問題。第二種操作繁瑣一點敬惦,需要操作命令行盼理,直接命令行安裝:
- 直接登錄官網(wǎng)下載:
jenkins的官網(wǎng)下載地址:https://jenkins.io/download/
因為這里是Mac下面所以需要選擇MacOS的版本:(左邊是穩(wěn)定版本谈山,右邊是測試版本俄删,所以一般都是選擇左邊的)
下載完成以后直接點擊安裝就可以了。之后在瀏覽器輸入鏈接:http://localhost:8080 就行 - 命令行下載安裝(推薦使用):
??①.使用brew下載安裝Jenkins(如果事先沒有安裝過brew工具的童鞋可以參考這篇文章):
我這邊是因為之前安裝過了奏路,所以這里會提示已安裝畴椰,如果是沒有安裝過的會提示XXfiles,XXMB鸽粉,built in XX minute XX seconds.
??②.安裝完成后斜脂,在終端輸入Jenkins啟動:
這個地方可能會出現(xiàn)一個錯誤,由于Jenkins安裝后的端口號是8080触机,所以很容易會跟其他服務(wù)的端口號沖突帚戳,這個時候就需要修改端口號,命令行輸入(本文默認(rèn)全部使用8080端口)
vim /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist
打開以后如下圖所示(初次使用vim的小伙伴可以注意下,在進入vim編輯器以后,需要隨便敲一個字符才能進入編輯模式儡首,敲ESC鍵片任,退出編輯模式。輸入:wq保存并退出蔬胯。有興趣了解更深的小伙伴可以參考linux VIM基本命令)
進入編輯模式对供,修改--httpPort=XXXX端口號可以盡量選擇生僻點的,避免跟其他端口沖突
??③.打開瀏覽器輸入鏈接:http://localhost:8080就行了
二氛濒、Jenkins的環(huán)境配置
-
打開頁面首先進入的是一個解鎖頁面产场,這里由于我之前已經(jīng)配置好了,這個頁面不會出現(xiàn)舞竿,所以我從網(wǎng)上找了張圖京景,大概就是這個樣子的:
路徑會有所不用,Mac下面路徑這個
/Users/你的Mac用戶名/.jenkins/secrets/initialAdminPassword
在這個路徑下找到對應(yīng)的密碼輸入
- 之后進入插件安裝的頁面骗奖,這個頁面下直接選擇[安裝推薦的插件]确徙。基本沒什么問題重归,如果出現(xiàn)插件安裝失敗米愿,可以參考這篇博客Jenkins插件下載失敗兩種處理辦法.
- 接下來就是環(huán)境變量的配置:
??①.首先點擊左側(cè)系統(tǒng)管理,看到系統(tǒng)設(shè)置鼻吮,點擊進入(無視掉上面的警告和提示吧育苟,對主流程沒什么影響):
??②.進入系統(tǒng)設(shè)置頁面
選擇環(huán)境變量,點擊Add椎木,設(shè)置SDK的環(huán)境變量违柏,Name的話一定要輸入ANDROID_HOME博烂,Value就是SDK當(dāng)前SDK所在的目錄.
設(shè)置Jenkins的URL,如果是本機的jenkins,那么直接設(shè)置localhost:8080漱竖。如果是服務(wù)器上面的Jenkins禽篱,那么設(shè)置服務(wù)器的IP就OK了。
設(shè)置郵箱地址馍惹,這里設(shè)置的是系統(tǒng)管理員郵箱躺率,下面有地方會用到。要確保設(shè)置正確万矾。
上面的Extended E-mail Notification和下面的郵件通知輸入的內(nèi)容保持一致即可
SMTP服務(wù)器就是上面系統(tǒng)管理員郵箱的SMTP,本文選擇的是網(wǎng)易163郵箱悼吱,所以設(shè)置的是smtp.163.com。如果是QQ郵箱良狈,那么設(shè)置的是smtp.qq.com后添。后綴就是郵箱地址@后面的內(nèi)容。這里重點說明一下用戶名需要跟系統(tǒng)管理員郵箱保持一致薪丁,而且密碼是各大郵箱的授權(quán)碼遇西,并不是郵箱的登錄密碼,要切記严嗜,否則郵件就會發(fā)送失敗粱檀。其他就按照圖示寫就可以了。然后點擊保存阻问。
附:
網(wǎng)易163郵箱授權(quán)碼獲取教程
QQ郵箱授權(quán)碼獲取教程
新浪郵箱授權(quán)碼獲取教程
阿里云郵箱授權(quán)碼獲取教程
谷歌郵箱授權(quán)碼獲取教程
??③.系統(tǒng)管理->全局工具配置
JDK installations一欄里面點擊Add JDK梧税,Name隨便取,不過最好對應(yīng)好版本號称近;JAVE_HOME就設(shè)置為當(dāng)前Mac下Java的安裝路徑第队。當(dāng)然也可以設(shè)置成自動安裝
git一欄配置:Path to Git executable里面設(shè)置的就是Git的安裝路徑(不知道Git安裝目錄的小伙伴可以參考這篇文章Mac和Windows快速查看git安裝目錄)
gradle配置:一樣名字最好跟著版本號,GRADLE_HOME就設(shè)置為gradle的安裝目錄
Maven庫的配置(如果項目里面沒有用到maven庫刨秆,這一項可不必添加):同上
最后點擊保存
三凳谦、項目配置
-
新建任務(wù):
輸入應(yīng)用名字,選擇構(gòu)建一個自由風(fēng)格的軟件項目衡未,點擊OK
-
進入項目配置頁面:
(本文選擇的是git尸执,如果有小伙伴是用SVN的,需要選擇第三個radiobutton:Subversion.)輸入git服務(wù)器上面可以clone的項目的地址缓醋。
然后添加證書:
類型如圖設(shè)置如失,UserName和Password填寫Git服務(wù)器上面你登錄的用戶名和密碼,點擊添加就OK了送粱。
-
項目配置頁面往下拉褪贵,有個Add build step按鈕,點擊選擇Invoke Gradle script。出現(xiàn)下圖所示:
先選擇Invoke Gradle:Gradle Version里面選擇之前系統(tǒng)設(shè)置里面配置好的那個Gradle(這個時候Gradle的名字增加版本號的優(yōu)勢就體現(xiàn)出來了脆丁,你可以選擇你想要的版本的gradle)
在選擇Use Gradle Wrapper:Tasks里面填寫build
此時需要點擊保存世舰,然后立即構(gòu)建項目,將項目從git上面拉下來到j(luò)enkins目錄下槽卫。然后在重新打開配置頁面跟压,頁面下拉到同一個位置,右下角的Advanced按鈕點擊出現(xiàn)如下畫面:
在jenkins目錄下面找到剛才從git上面下拉的項目的路徑歼培,將項目中的build.gradle 路徑寫入Build File里面
-
繼續(xù)往下拉震蒋,有個Add post-build action按鈕,點擊按鈕選擇Editable Email Notification,然后點擊最下面Advanced settings按鈕丐怯,出現(xiàn)如下圖示:
點擊Add Trigger選擇發(fā)送郵件的時機喷好,我這里選擇了總是,也就是說只要Jenkins進行一次打包读跷,不論成功失敗都會發(fā)送一次郵件。然后點擊Advanced按鈕:
Add按鈕點擊選擇要發(fā)送郵件的集合禾唁,本文選擇了開發(fā)者和接受者列表集合效览。
接下來設(shè)置郵件接收列表集合。Content里面的內(nèi)容根據(jù)項目需求填寫荡短,其他的可以直接按照如圖所示填寫即可丐枉。
最后點擊保存
PS:另外點擊Add post-build action可以再設(shè)置E-mail Notification,設(shè)置對應(yīng)的郵箱掘托。不過我試了下在沒有設(shè)置這個的情況下瘦锹,Jenkins依然可以打包發(fā)送郵件,只是多了個警告,不知道哪位大佬可以解惑一下
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
四闪盔、項目運行
左側(cè)菜單欄點擊立即構(gòu)建弯院,Jenkins就會進行自動化打包了,耐心等候幾十秒到兩三分鐘左右的時間泪掀,打包完成后會在郵箱里面收到一封郵件听绳。打包log最后出現(xiàn):
Sending email for trigger: Always
Sending email to: XXX@qq.com
Finished: SUCCESS
就代表打包順利完成。
參考博客:
Android 使用 Jenkins 實現(xiàn)自動化打包【流程】&【踩坑】
MAC上搭建Jenkins實現(xiàn)Android自動打包
Jenkins 配置自動發(fā)送郵件异赫,測試郵件發(fā)送失敗
Mac 使用HomeBrew安裝的Jenkins修改端口號