Jenkins實現Android自動化打包

一、Tomcat

進入 https://tomcat.apache.org/ 官網,下載最新的 tomcat 安裝包而且安裝。java

安裝完成後,啓動 tomcat 後,在瀏覽器中輸入 http://localhost:8080/ , 若是看到下面的界面,那麼tomcat 就安裝配置好了。git

這裏寫圖片描述

二、Jenkins 部署到 Tomcat

進入jenkins 的官網 https://jenkins.io/ , 根據你搭建平臺的不一樣,下載 jenkins war 包 ,咱們這裏用 windows 平臺作演示。web

這裏寫圖片描述

war 包以下圖所示面試

這裏寫圖片描述

把 war 包放在 tomcat 的 webapps 目錄下,以下圖所示:express

這裏寫圖片描述

而後在瀏覽器中訪問 : http://localhost:8080/jenkins/ , 你將會看到以下界面 , 表明 Jenkins 已經部署完成了,下一步安裝 Jenkins.apache

這裏寫圖片描述

三、填寫 Jenkins 超級管理員密碼

在上圖的輸入框內要輸入超級管理員權限的密碼,這個 密碼在紅色路徑的文件裏 ,輸入密碼後,點擊 continue , 以下圖所示:小程序

這裏寫圖片描述

四、Jenkins 插件安裝和超級管理員配置

填寫完密碼後,將會看到插件安裝界面windows

這裏寫圖片描述

咱們選擇第一項,安裝默認Jenkins插件。安裝插件過程以下圖所示:瀏覽器

這裏寫圖片描述

等全部的插件都安裝完成,咱們將會看到用戶名設置界面。tomcat

這裏寫圖片描述

這個界面你有兩個選擇能夠操做,

  • 選擇一:直接點擊 Continue as Admin 安裝,默認此時的超級管理員爲 admin .

  • 選擇二:輸入用戶名,密碼,確認密碼,全名,電子郵件地址。而後點擊 Save and Finish . 注意你輸入的用戶名就是 Jenkins 的超級管理員。須要注意的是,上面的每一項都須要填寫,不然點擊 Save and Finish 按鈕沒有效果。

等上面的步驟都操做完畢,你將會看到以下界面,表明 Jenkins 的插件安裝和超級管理員已經配置好了。

這裏寫圖片描述

五、建立任務

這裏寫圖片描述

點擊建立一個新的任務,以下圖所示:

這裏寫圖片描述

六、項目倉庫配置

這裏寫圖片描述

一、選擇源碼管理工具,Git 或者 Subversion . 下面咱們的演示選擇 Git.
二、填寫 Git 倉庫地址
三、選擇 Git 證書憑證, 若是沒有建立過證書,顯示 none , 能夠點擊右邊的 Add 按鈕添加一個證書憑證。
四、添加證書憑證,添加的方法詳見下面的圖。
五、選擇 Git 倉庫的分支
六、源碼瀏覽器,Git 有不少管理器,咱們這裏選擇自動就行了。

  • 添加證書

從 Git 上拉取代碼,有兩種方式:用戶名+密碼、SSH . 根據本身的須要選擇。

這裏寫圖片描述

填寫 Git 倉庫的用戶名和密碼

這裏寫圖片描述

七、Jenkins 全局配置

JDK 和 Gradle 配置

因爲Android 是基於 java 的,咱們須要配置 JDK;因爲咱們用 Gradle 構建Android 項目,咱們須要設置 Gradle 的環境 。

在 系統管理 --> Global Tool Configuration

這裏寫圖片描述

Android SDK 配置

系統管理 --> 系統設置 -- 全局屬性

在 Environment variables 裏面增長一個鍵值對.
鍵:ANDROID_HOME
值:SDK 路徑

這裏寫圖片描述

八、建立 Jenkins 構建任務

這裏寫圖片描述

一、表明配置的項目
二、構建模塊
三、選擇 Gradle 構建工具的版本號,能夠選擇默認構建版本號,也能夠選擇本身自定的版本號。
四、填寫 Gradle 構建任務

  • 打 release 包
app:clean     
app:assembleRelease

解釋:

app:clean : 清除....../app目錄下的build文件夾
app:assembleRelease : 編譯並打Release的包
  • 打 debug 包
app:clean     
app:assembleDebug

解釋:

app:clean : 清除....../app目錄下的build文件夾
app:assembleDebug: 編譯並打Debug的包
  • 同時打 debug 包和 release 包
app:clean
app:assembleDebug 
app:assembleRelease

九、執行構建任務

點擊當即構建按鈕,開始執行構建任務。

這裏寫圖片描述

- 【1】、點擊當即構建,開始執行構建任務
- 【2】、進度條,表示正在構建的項目。
- 【3】、藍色的圖標表示構建成功
- 【4】、紅色的圖標表示構建失敗

動圖演示以下圖所示:

這裏寫圖片描述

點擊正在構建的條目,能夠進入正在構建的信息。

這裏寫圖片描述

  • 狀態集:構建人用戶名、構建git 節點

  • 變動記錄:

  • Console Output:構建過程當中的輸出控制檯,會輸出構建過程當中的詳細信息,這個功能很重要,若是構建失敗,能夠從這裏找到錯誤的緣由。

  • 編輯編譯信息:每次構建任務的時候,構建名字是數字形式疊加,這裏能夠自定義構建任務的名字。

  • Git Build Data:本次構建 Git 倉庫的相關信息。

十、構建結果

在 Console Output 面板中,出現了 BUILD SUCCESSFUL , 表明任務構建成功。

這裏寫圖片描述

十一、構建後操做

fir 是國內提供測試應用極速發佈,應用崩潰實時分析、用戶反饋收集等一系列開發測試效率工具服務,幫助開發者將更多精力放在產品的開發與應用的優化上。

官網: https://fir.im/

登陸後,在 fir 官網的我的資料中, 能夠找到 API Token , 這個 token 咱們在後面會用到。

這裏寫圖片描述

fir.im Jenkins 插件使用方法: http://blog.fir.im/jenkins/

下載插件

Jenkins 構建完成後,生成的 apk 文件,咱們經過插件的方式上傳到 fir . 經過上面的鏈接,咱們下載 Jenkins 的 fir 插件到本地。

這裏寫圖片描述

安裝插件

系統管理 --> 插件管理 --> 高級 --> 上傳插件

這裏寫圖片描述

使用插件

配置 --> 構建後操做 --> 增長構建後操做步驟 --> Upload to fir.im

這裏寫圖片描述

填寫 API Token

這裏寫圖片描述

構建結果

這裏寫圖片描述

經過日誌看到上傳 fir 成功。

總結

到這裏關於 Jenkins 的自動化打包的主要內容已經介紹完了。下面將會介紹一些附加的操做,可以更好的使用 Jenkins .

十二、構建觸發器

在上面部分咱們發起構建的命令是點擊 當即構建 的按鈕,Jenkins 裏面有構建觸發器的方式,提供遠程構建任務。

這裏寫圖片描述

  • 一、觸發遠程構建 (例如,使用腳本):填入身份驗證令牌,能夠隨便填寫,咱們這裏填入 123456 , 填寫完成後,在輸入框的下方有提醒
Use the following URL to trigger build remotely: JENKINS_URL/job/AppTest/build?token=TOKEN_NAME 或者 /buildWithParameters?token=TOKEN_NAME
Optionally append &cause=Cause+Text to provide text that will be included in the recorded build cause.

根據提示,咱們自瀏覽器中訪問地址: http://127.0.0.1:9999/jenkins/job/AppTest/build?token=123456 , 這樣就能夠觸發構建任務。

  • 二、Build after other projects are built : 在其餘任務結束後,開始本次構建任務。

示例:在 AppTest1 項目構建成功後,開始本次構建任務。

這裏寫圖片描述

①Trigger only if build is stable:其餘項目構建成功
②Trigger even if the build is unstable:其餘項目不穩定
③Trigger even if the build fails:其餘項目構建失敗

  • Build periodically:週期進行構建(它不關心源碼是否發生變化)

日程表:

H 2  * * *  //天天凌晨2天構建

H 16  * * *   //天天下午4點構建,16 表明下午4點

0 16 15 * *  //每月15號下午4點構建,15表明天,16表明下午4點,0表明0分鐘

H 6,12,18 * * *  //天天的 6時,12時,下午6時構建

15,30,45 * * * * //每一個小時 15分,30分,45分 發起構建

* * * 1,3,5,7,9 * //每一年的1, 3,5,7,9 月發起構建

示例:

這裏寫圖片描述

注意

一、在日程表中,# 能夠表明註釋,可是須要單獨寫一行。

二、官方日程表語法:https://en.wikipedia.org/wiki/Cron#CRON_expression

三、日程表的語法字段遵循cron的語法(略有不一樣)。 具體來講,每行由5個由TAB或空格分隔的字段組成:MINUTE HOUR DAY MONTH WEEK

四、時間順序和: MINUTE (0-59), HOUR (0-23), DAY (1-31), MONTH (1-12), DAY OF THE WEEK (0-7)

其餘的日程表:

30 08 * * 1-6  //週一至週六 早上08:30開始構建,最後一個字段是 WEEK ,1-6 表明週一到週五,0 表明週日

00 0,12 * * 0-5 //週日到週五,天天建成兩次,中午12:00和午夜00:00

H 16 * * 1-5 //工做日 下午4點左右開始天天開始建設,構建時間 16:00 -16:59,具體的時間取決於項目哈希:
  • GitHub hook trigger for GITScm polling:hookplugin 檢測到源碼的 push 操做觸發構建 , 感受Poll SCM 更方便些,若是提交頻繁,則這個觸發就會頻繁,看業務須要設置。

  • Poll SCM : 定時檢查源碼變動(根據SCM軟件的版本號),若是有更新就 checkout 最新code下來,而後執行構建動做。

日程表示例:

H/5 * * * *  //每5分鐘檢查一次

H/60 * * * * //每1個小時檢查一次

H H/2 * * *  //每2個小時檢查一次

H * H/10 * * //每10天檢查一次

H * * H/3 *  //每3個月檢查一次

H * * * 1  //每一週檢查一次

最後給你們分享一份很是系統和全面的Android進階技術大綱及進階資料,及面試題集

想學習更多Android知識,請加入Android技術開發企鵝交流 7520 16839

進羣與大牛們一塊兒討論,還可獲取Android高級架構資料、源碼、筆記、視頻

包括 高級UI、Gradle、RxJava、小程序、Hybrid、移動架構、React Native、性能優化等全面的Android高級實踐技術講解性能優化架構思惟導圖,和BATJ面試題及答案!

羣裏免費分享給有須要的朋友,但願可以幫助一些在這個行業發展迷茫的,或者想系統深刻提高以及困於瓶頸的朋友,在網上博客論壇等地方少花些時間找資料,把有限的時間,真正花在學習上,因此我在這免費分享一些架構資料及給你們。但願在這些資料中都有你須要的內容。

相關文章
相關標籤/搜索