本文主要介紹使用Jenkins實現app應用的自動打包發布。每次執行jenkins任務的時候,大概流程如下:打包app應用》將app應用作為郵件附件發送給件給客戶。
不管你想體驗Jenkins自動化部署帶來的便捷,還是學習Jenkins 自動部署 app 這門技巧,這篇文章都適合你。如果恰好你所開發的app是在內部使用的,不需要每次都通過qq還是什么方式發送給客戶,Jenkins幫你一鍵搞定。
Jenkins安裝
推薦使用簡單的安裝方法
下載地址:https://jenkins.io/download/ 選擇下載war包
image01.png
下載之后,準備好一個tomcat,然后將下載的war包放到 tomcat的webapps目錄下,然后啟動tomcat,這時候tomcat會自動解壓這個war包。
在啟動的過程中,會提示輸入密碼,這個密碼我暫時不知道干嘛的,參照提示輸入就好了:
image02.png
這時候在瀏覽器中輸入: localhost:8081/jenkins,會提示你輸入密碼,將命令行中的密碼拷貝進去就好了。輸入密碼之后,進入到選擇安裝插件的界面,有兩種方式,一種是建議安裝,一種是自定義安裝,直接選擇建議安裝。然后就是等待安裝插件:
image03.png
安裝插件之后,提示創建用戶:
image04.png
創建用戶之后:
image.png
image.png
至此Jenkins安裝完成。
創建Jenkins任務
進入jenkins首頁后,點擊創建一個新任務。
image.png
接下來進入到詳細配置界面。
補充描述信息
image.png
配置代碼倉庫,這里選擇git
image.png
省略這兩個步驟
image.png
構建
image.png
image.png
保存之后跳轉到enkins首頁,運行我們剛剛創建的任務:
image.png
同時,可以查看日志:
image.png
image.png
按理來說,我們是希望可以正常的打包出一個apk文件了,但是很不巧,失敗了。下面來分析一下原因。
我們知道我們的ionic項目是利用npm進行包管理的,npm是根據package.json文件安裝依賴的。我們利用jenkins進行打包的時候,僅僅是從git上拉下了代碼,下載需要的哪些jar包,這是一個原因。還有另外一個原因,我們打包apk文件的時候,是需要依賴SDk和安卓平臺的,安卓平臺我們一般是通過執行 ionic cordova platform add android 命令來添加,但是我們不可能把這個提交到git上,要不然這個項目太大了。這個時候,我們可以在 jenkins 構建的時候 執行這兩個命令:
npm install 和 ionic cordova platform add android
這樣確實可以,但是太慢了,每次執行 jenkins命令的時候執行上面兩個命令,會浪費好多時間,得不償失,那就找一個這折中的辦法。在使用這種方法之前,先分析一下Jenkins執行 命令的 流程,這個過程可以通過日志分析出來,以下是在執行jenkins命令時候的日志:
image.png
有這個日志就足夠了,通過日志發現,jenkins有一個工作目錄,在執行命令的時候創建的(第一次執行的時候創建,執行之后不會自動刪除),目錄的路徑就是 當前用戶/jenkins/任務名稱。Jenkins在執行命令之前,會先從git上下載代碼到這個目錄,然后再執行命令。既然知道這個 那就 很簡單那了 。我們可以第一次手動再這個目錄下執行 npm install 和 ionic cordova pllatform add android 這兩個命令,這樣再打包的時候 就不會報錯了。在執行這 兩個 命令之后,再執行jenkins命令,通過日志可以發現,打包成功了,生成了apk文件。
image.png
image.png
同時,在 jenkins工作目錄下,可以找到剛剛打包的apk文件。
image.png
發送郵件設置
在 成功打包apk文件之后,希望可以將apk文件通過郵件的形式發送給客戶 ,客戶在郵件中直接下載附件 即可。
首先需要先配置好jenkins的郵件 發送功能。進入首頁,點擊系統管理:
image.png
然后再點擊 系統設置
image.png
需要發送郵件,有這么幾個選項需要配置:
image.png
系統管理員地址其實就是發送方的郵件地址
image.png
而且上面哪些參數一定要注意,寫錯一個可能就發送 失敗了
image.png
可以看到郵件發送成功,說明基本的郵件發送設置完成。
項目發送郵件
郵件通知的全局設置配好以后就可以在具體的項目中應用發送郵件通知了。首先需要安裝插件,在系統管理→插件管理→可選插件 搜索找到 Email Extension Plugin 安裝好后,點開要配置的項目配置。
image.png
image.png
配置收件人地址列表
image.png
如上,在任務構建 異常的時候就會發送郵件,為了看到效果,可以故意將上面的兩個 命令寫錯,這樣在構建的時候就會報錯。
image.png
然后執行構建任務并 查看日志
image.png
然后去 收件箱查收郵件
image.png
至此,項目發送發送郵件完成。
郵件全局配置
可以利用Email Extension Plugin插件全局配置發送郵件的基本配置。如果是在第一次打開jenkins主頁的時候,選擇安裝了它建議安裝的插件,那么這個插件已經有了,其它情況 不太清楚,如果沒有就自己安裝一下插件。配置方法如下:
首頁:系統管理 》系統設置
找到Email Extension Plugin 設置
image.png
這是基本配置,還有個高級設置,點擊 “ 高級”
image.png
image.png
這個 和 “郵件通知” 中配置保持一致就好了
image.png
這個地方有個Default Triggers. 用來設置發送 郵件的出發條件。我的 配置 如下:
image.png
項目引用全局配置
在項目發送郵件的時候使用剛剛的 全局配置。先打開項目配置界面:
image.png
點擊構建后操作并且選擇Email Extension Plugin,如下所示:
image.png
image.png
image.png
如圖所示,這時候還的默認使用了 全局的一些配置。點擊保存,再次測試,構建任務。當任務執行成功之后,可以在收件箱查收郵件。因此在全局配置中設置了出發條件,always、success、fail。按理來說可以收到兩封郵件。
image.png
image.png
發現收件箱收到兩封郵件,測試成功。
項目自定義配置
如果該任務不想引用全局配置,需要自己定義配置怎么辦?這里也有個項目自定義功能,如圖:
image.png
點擊Advanced setting 即可自定義配置。而且這里的自定義配置,是根據觸發條件分別設置的:
image.png
針對不同的觸發條件,點擊高級即可自定義配置了
image.png
下面對 “success” 進行設置,每次利用jenkins打包成功后,將apk文件作為郵件的附件發送給客戶
image.png
路徑的選擇請參照下面的提示
保存之后執行構建任務,查看發件箱
image.png
郵件發送成功,附件發送成功。