本文主要介紹使用Jenkins實(shí)現(xiàn)app應(yīng)用的自動打包發(fā)布冀惭。每次執(zhí)行jenkins任務(wù)的時(shí)候嘲碱,大概流程如下:打包app應(yīng)用》將app應(yīng)用作為郵件附件發(fā)送給件給客戶哀墓。
不管你想體驗(yàn)Jenkins自動化部署帶來的便捷显熏,還是學(xué)習(xí)Jenkins 自動部署 app 這門技巧榕莺,這篇文章都適合你俐芯。如果恰好你所開發(fā)的app是在內(nèi)部使用的,不需要每次都通過qq還是什么方式發(fā)送給客戶钉鸯,Jenkins幫你一鍵搞定吧史。
Jenkins安裝
推薦使用簡單的安裝方法
下載地址:https://jenkins.io/download/ 選擇下載war包
image01.png
下載之后,準(zhǔn)備好一個(gè)tomcat唠雕,然后將下載的war包放到 tomcat的webapps目錄下贸营,然后啟動tomcat,這時(shí)候tomcat會自動解壓這個(gè)war包岩睁。
在啟動的過程中钞脂,會提示輸入密碼,這個(gè)密碼我暫時(shí)不知道干嘛的捕儒,參照提示輸入就好了:
image02.png
這時(shí)候在瀏覽器中輸入: localhost:8081/jenkins芳肌,會提示你輸入密碼,將命令行中的密碼拷貝進(jìn)去就好了。輸入密碼之后亿笤,進(jìn)入到選擇安裝插件的界面翎迁,有兩種方式,一種是建議安裝净薛,一種是自定義安裝汪榔,直接選擇建議安裝。然后就是等待安裝插件:
image03.png
安裝插件之后肃拜,提示創(chuàng)建用戶:
image04.png
創(chuàng)建用戶之后:
image.png
image.png
至此Jenkins安裝完成痴腌。
創(chuàng)建Jenkins任務(wù)
進(jìn)入jenkins首頁后,點(diǎn)擊創(chuàng)建一個(gè)新任務(wù)燃领。
image.png
接下來進(jìn)入到詳細(xì)配置界面士聪。
補(bǔ)充描述信息
image.png
配置代碼倉庫,這里選擇git
image.png
省略這兩個(gè)步驟
image.png
構(gòu)建
image.png
image.png
保存之后跳轉(zhuǎn)到enkins首頁猛蔽,運(yùn)行我們剛剛創(chuàng)建的任務(wù):
image.png
同時(shí)剥悟,可以查看日志:
image.png
image.png
按理來說,我們是希望可以正常的打包出一個(gè)apk文件了曼库,但是很不巧区岗,失敗了。下面來分析一下原因毁枯。
我們知道我們的ionic項(xiàng)目是利用npm進(jìn)行包管理的嗜浮,npm是根據(jù)package.json文件安裝依賴的兢交。我們利用jenkins進(jìn)行打包的時(shí)候舒萎,僅僅是從git上拉下了代碼致燥,下載需要的哪些jar包,這是一個(gè)原因赂韵。還有另外一個(gè)原因娱节,我們打包apk文件的時(shí)候,是需要依賴SDk和安卓平臺的右锨,安卓平臺我們一般是通過執(zhí)行 ionic cordova platform add android 命令來添加,但是我們不可能把這個(gè)提交到git上碌秸,要不然這個(gè)項(xiàng)目太大了绍移。這個(gè)時(shí)候,我們可以在 jenkins 構(gòu)建的時(shí)候 執(zhí)行這兩個(gè)命令:
npm install 和 ionic cordova platform add android
這樣確實(shí)可以讥电,但是太慢了蹂窖,每次執(zhí)行 jenkins命令的時(shí)候執(zhí)行上面兩個(gè)命令,會浪費(fèi)好多時(shí)間恩敌,得不償失瞬测,那就找一個(gè)這折中的辦法。在使用這種方法之前,先分析一下Jenkins執(zhí)行 命令的 流程月趟,這個(gè)過程可以通過日志分析出來灯蝴,以下是在執(zhí)行jenkins命令時(shí)候的日志:
image.png
有這個(gè)日志就足夠了,通過日志發(fā)現(xiàn)孝宗,jenkins有一個(gè)工作目錄穷躁,在執(zhí)行命令的時(shí)候創(chuàng)建的(第一次執(zhí)行的時(shí)候創(chuàng)建,執(zhí)行之后不會自動刪除)因妇,目錄的路徑就是 當(dāng)前用戶/jenkins/任務(wù)名稱问潭。Jenkins在執(zhí)行命令之前,會先從git上下載代碼到這個(gè)目錄婚被,然后再執(zhí)行命令狡忙。既然知道這個(gè) 那就 很簡單那了 。我們可以第一次手動再這個(gè)目錄下執(zhí)行 npm install 和 ionic cordova pllatform add android 這兩個(gè)命令址芯,這樣再打包的時(shí)候 就不會報(bào)錯(cuò)了灾茁。在執(zhí)行這 兩個(gè) 命令之后,再執(zhí)行jenkins命令是复,通過日志可以發(fā)現(xiàn)删顶,打包成功了,生成了apk文件淑廊。
image.png
image.png
同時(shí)逗余,在 jenkins工作目錄下,可以找到剛剛打包的apk文件季惩。
image.png
發(fā)送郵件設(shè)置
在 成功打包apk文件之后录粱,希望可以將apk文件通過郵件的形式發(fā)送給客戶 ,客戶在郵件中直接下載附件 即可画拾。
首先需要先配置好jenkins的郵件 發(fā)送功能啥繁。進(jìn)入首頁,點(diǎn)擊系統(tǒng)管理:
image.png
然后再點(diǎn)擊 系統(tǒng)設(shè)置
image.png
需要發(fā)送郵件青抛,有這么幾個(gè)選項(xiàng)需要配置:
image.png
系統(tǒng)管理員地址其實(shí)就是發(fā)送方的郵件地址
image.png
而且上面哪些參數(shù)一定要注意旗闽,寫錯(cuò)一個(gè)可能就發(fā)送 失敗了
image.png
可以看到郵件發(fā)送成功,說明基本的郵件發(fā)送設(shè)置完成蜜另。
項(xiàng)目發(fā)送郵件
郵件通知的全局設(shè)置配好以后就可以在具體的項(xiàng)目中應(yīng)用發(fā)送郵件通知了适室。首先需要安裝插件,在系統(tǒng)管理→插件管理→可選插件 搜索找到 Email Extension Plugin 安裝好后举瑰,點(diǎn)開要配置的項(xiàng)目配置捣辆。
image.png
image.png
配置收件人地址列表
image.png
如上,在任務(wù)構(gòu)建 異常的時(shí)候就會發(fā)送郵件此迅,為了看到效果汽畴,可以故意將上面的兩個(gè) 命令寫錯(cuò)旧巾,這樣在構(gòu)建的時(shí)候就會報(bào)錯(cuò)。
image.png
然后執(zhí)行構(gòu)建任務(wù)并 查看日志
image.png
然后去 收件箱查收郵件
image.png
至此忍些,項(xiàng)目發(fā)送發(fā)送郵件完成鲁猩。
郵件全局配置
可以利用Email Extension Plugin插件全局配置發(fā)送郵件的基本配置。如果是在第一次打開jenkins主頁的時(shí)候坐昙,選擇安裝了它建議安裝的插件绳匀,那么這個(gè)插件已經(jīng)有了,其它情況 不太清楚炸客,如果沒有就自己安裝一下插件疾棵。配置方法如下:
首頁:系統(tǒng)管理 》系統(tǒng)設(shè)置
找到Email Extension Plugin 設(shè)置
image.png
這是基本配置,還有個(gè)高級設(shè)置痹仙,點(diǎn)擊 “ 高級”
image.png
image.png
這個(gè) 和 “郵件通知” 中配置保持一致就好了
image.png
這個(gè)地方有個(gè)Default Triggers. 用來設(shè)置發(fā)送 郵件的出發(fā)條件是尔。我的 配置 如下:
image.png
項(xiàng)目引用全局配置
在項(xiàng)目發(fā)送郵件的時(shí)候使用剛剛的 全局配置。先打開項(xiàng)目配置界面:
image.png
點(diǎn)擊構(gòu)建后操作并且選擇Email Extension Plugin开仰,如下所示:
image.png
image.png
image.png
如圖所示拟枚,這時(shí)候還的默認(rèn)使用了 全局的一些配置。點(diǎn)擊保存众弓,再次測試恩溅,構(gòu)建任務(wù)。當(dāng)任務(wù)執(zhí)行成功之后谓娃,可以在收件箱查收郵件脚乡。因此在全局配置中設(shè)置了出發(fā)條件,always滨达、success奶稠、fail。按理來說可以收到兩封郵件捡遍。
image.png
image.png
發(fā)現(xiàn)收件箱收到兩封郵件锌订,測試成功。
項(xiàng)目自定義配置
如果該任務(wù)不想引用全局配置画株,需要自己定義配置怎么辦辆飘?這里也有個(gè)項(xiàng)目自定義功能,如圖:
image.png
點(diǎn)擊Advanced setting 即可自定義配置谓传。而且這里的自定義配置蜈项,是根據(jù)觸發(fā)條件分別設(shè)置的:
image.png
針對不同的觸發(fā)條件,點(diǎn)擊高級即可自定義配置了
image.png
下面對 “success” 進(jìn)行設(shè)置良拼,每次利用jenkins打包成功后战得,將apk文件作為郵件的附件發(fā)送給客戶
image.png
路徑的選擇請參照下面的提示
保存之后執(zhí)行構(gòu)建任務(wù)充边,查看發(fā)件箱
image.png
郵件發(fā)送成功庸推,附件發(fā)送成功常侦。