基於Jenkins搭建自動化構建系統採坑記

weixinjie發表於2017-12-20

為什麼要做自動化構建

先說提測

客戶端發版之前總要經過測試部門的各種測試,像我廠的流程是

  • 開發打測試包
  • 將測試包上傳自己的內測平臺(如果你們沒有自己的內測平臺也可以使用免費的平臺如:https://fir.im)
  • 在測試的釘釘群組裡通知測試部門或者傳送郵件抄送測試部門
  • 測試部門測試並反饋問題(可以自己的反饋平臺也可以用BugTags)
  • 開發人員修復問題並重覆上述步驟

然後問題就來了,每次提測需要抽一個同學來做這些事情,並且跑自動化測試的這些過程是沒辦法在研發人員技術內測的時候就能提供測試報告的。

再說發版

我廠的渠道數量已經達到了100+,開發完新的業務需要全渠道發版的時候,還是需要單獨抽一個同學出來跟進發版包,並且發版的流程更多。

  • 研發人員打渠道(100+)
  • 測試部門測試渠道包(各種驗證:渠道號是不是正確等)
  • 研發人員將所有的渠道包上傳內部檔案儲存伺服器
  • 產品及商務部門從內部伺服器拉去渠道,並完成發版
  • 發版郵件通知

然後問題又來了:

  • 怎樣保證這位同學機器上的打包環境是正常的?會不會他在開發過程中改了系統的環境造成未知的漏洞?
  • 打包出來的apk檔案是不是需要測試部門徹底過一遍?測試部門的人手如果不夠怎麼辦?
  • 最關鍵的一點:打包過程中,這名同學的機器基本不能用作開發,因為gradle會把記憶體跟cpu用的很乾淨。

總結

本著繁重而重複的體力勞動交給機器做的原則,我們開始基於jenkins搞了一套自動化構建系統。這裡我將構建過程中碰到的坑分享出來給大家,避免其他小夥伴重複入坑。

搭建Jenkins執行環境

下載並安裝

  • 點選這裡進入官方的下載地址,由於我的內部伺服器裝的是windows系統所以我選擇的是windows安裝包。Linux Mac的安裝方式大同小異。

下載

  • 安裝的方式有兩種: 1.直接下載可安裝檔案,雙擊安裝即可,安裝完畢之後jenkins會自動開啟瀏覽器並定位到8080埠 2.下載.war的包,然後下載tomcat容器,將該war包拷貝到tomcat容器中然後啟動tomcat。(這裡不多說了,google一波都出來了)

初始化

  • 安裝完jenkins後,開啟瀏覽器http://localhost:8080,會彈出初始化介面

基於Jenkins搭建自動化構建系統採坑記

  • 按照提示的檔案目錄將管理員密碼輸入(嗯,聰明的你一看就知道這圖是我網上盜的)

    基於Jenkins搭建自動化構建系統採坑記

  • 然後重點來了,正常來說會進入如下介面進入外掛安裝環節

    基於Jenkins搭建自動化構建系統採坑記
    如果有出現以下提示的同學,歡迎進入第一個坑 Offline This Jenkins instance appears to be offline...(不啦不啦一堆),沒錯是因為你的伺服器沒翻q,需要自備梯子。(為了安全省事,備個梯子吧,大家都是搞開發的,沒梯子怎麼玩)。

  • 安裝 Gradle plugin,Git Parameter Plug-In,Email Extension Plugin以及Android Emulator Plugin外掛

  • Jenkins會提示你建立一個使用者,按照提示操作就好。

  • 喜大普奔,我們離自動化構建又近了一步,這時你會有如下的操作介面。忽略我已經建立好了的專案(打馬賽克的地方)。

    基於Jenkins搭建自動化構建系統採坑記

進行全域性環境變數的配置

系統設定

開啟系統管理-系統設定頁面。這裡我們重點設定一下郵箱,其他的可以使用預設的。

  • Jenkins Location選項卡

基於Jenkins搭建自動化構建系統採坑記

注意:系統管理員郵件地址一定要設定,以後Jenkins構建的郵箱通知會以這個郵箱地址為發件人傳送

  • Extended E-mail Notification選項卡。因為我們安裝了Extended E-mail Notification外掛所以需要設定一下這個選項卡的內容。注意因為我們用的是阿里雲的企業郵箱,所以smtp走的是阿里雲的。smtp這塊需要根據你們的具體郵箱具體設定。

基於Jenkins搭建自動化構建系統採坑記

  • Android選項卡。這塊需要設定一下Android SDK路徑。我的SDK路徑是我本機的,大家需要根據自己的具體路徑具體設定。

基於Jenkins搭建自動化構建系統採坑記

  • 完活,然後點選右下角的“儲存”按鈕。

系統工具配置

  • JDK配置(老規矩,大家的具體路徑需要具體設定)

基於Jenkins搭建自動化構建系統採坑記

  • Git配置

基於Jenkins搭建自動化構建系統採坑記

  • 點選右下角的“儲存”按鈕

新建專案,開始自動化構建

  • 選擇新建-構建一個自由風格的軟體專案,選擇確定,開始配置專案具體的設定

基於Jenkins搭建自動化構建系統採坑記

  • General配置

基於Jenkins搭建自動化構建系統採坑記

  • 原始碼管理配置。注意我用的是一個測試專案,如果你是第一次配置建議用這個測試專案做一下打包。不要貿然直接拉線上程式碼。(因為坑很多...)。測試專案git地址:https://github.com/weixinjie/android-crop.git。Credentials選項如果沒有授權的花需要點選Add新增一個。

基於Jenkins搭建自動化構建系統採坑記

  • 構建配置,這裡需要點選增加構建步驟按鈕,選擇Invoke Gradle script選項

基於Jenkins搭建自動化構建系統採坑記
注意,這裡需要選擇Use Gradle Wrapper選項,構建的時候Jenkins會自動去下載所需要的Gradle版本(保持科學上網狀態),儘量避免使用Invoke Gradle,裡面坑很多。Tasks裡面寫:clean assembleRelease(不懂gradle語法的自己去學吧)這句話的意思是打所有渠道的release版本的apk。
基於Jenkins搭建自動化構建系統採坑記

  • 增加構建後的步驟 將打出來的apk檔案儲存一下,注意用於存檔的檔案就直接寫**/*.apk就行

基於Jenkins搭建自動化構建系統採坑記

配置郵件通知。新增Editable Email Notification的構建後步驟。圖比較長,我擷取了兩張,需要配置的地方已經用紅色標出

基於Jenkins搭建自動化構建系統採坑記
基於Jenkins搭建自動化構建系統採坑記

  • 配置完成,喜大普奔,點選儲存。

開始自動化構建

  • 回到專案,點選立即構建,Jenkins會開始構建專案,並且在右下角的構建歷史中新增一條構建歷史

    基於Jenkins搭建自動化構建系統採坑記

  • 點選某一條具體的構建歷史,會出現該構建歷史的詳細內容,裡面的Console Output選項卡可以檢視構建的log

基於Jenkins搭建自動化構建系統採坑記

  • 構建完成之後,你配置的郵箱裡面會收到構建通知.

基於Jenkins搭建自動化構建系統採坑記

寫在最後

本篇是寫給初次接觸jenkins的小夥伴的,也是自己採坑的一次記錄。很多高階的用法沒有體現出來,比如觸發器、上傳ftp伺服器、跑Lint檢測、跑monkey等都沒有體現出來。希望大家從本篇教程做一個延伸,繼續探尋強大的Jenkins。

打個廣告 我本人非常願意參加很多技術沙龍等線下活動,因為很多幹貨可以幫我快速成長;公司有時候也會組織我們去參加技術分享會,but很多時候大咖們演講的速度會很快,導致會後能吸收的營養並不多。所以我在github上開了一個新的分支,裡面存放著我參加技術分享的會後ppt(當然,很多技術分享講師的ppt是不公開的,那我就沒轍了哈),大家可以fork一下,吸收一下里面的營養,一起進步哈。如果你也參加了很多技術分享,手裡有很多會後ppt歡迎發到weixinjie1993@gmail.com我整理統一push上去,讓更多人學習 專案地址

About Me

contact way value
mail weixinjie1993@gmail.com
wechat W2006292
github https://github.com/weixinjie
blog https://juejin.im/user/57673c83207703006bb92bf6

相關文章