Mac 環境下 Android 使用 Jenkins 構建自動化打包

邢闖洋發表於2021-12-15

安裝 Jenkins

這裡不在贅述,官網上使用 brew 安裝

配置

Jenkins 安裝成功後,就可以開始配置了

Mac 環境下 Android 使用 Jenkins 構建自動化打包

配置 JDK

Mac 環境下 Android 使用 Jenkins 構建自動化打包

配置 Git

Mac 環境下 Android 使用 Jenkins 構建自動化打包

配置 gradle

Mac 環境下 Android 使用 Jenkins 構建自動化打包

全域性屬性配置

Mac 環境下 Android 使用 Jenkins 構建自動化打包

配置 ANDROID_SDK 的路徑

增加 android_home 的環境變數

Mac 環境下 Android 使用 Jenkins 構建自動化打包

自動化打包

接下來新建一個任務,選擇自由風格

Mac 環境下 Android 使用 Jenkins 構建自動化打包

配置git地址

Mac 環境下 Android 使用 Jenkins 構建自動化打包

如果你使用的是 https,那麼需要配置認證,我這裡使用的是 ssh,所以不需要配置認證,認證的方式需要新增憑據

Mac 環境下 Android 使用 Jenkins 構建自動化打包

配置引數化構建過程

可以在構建時,通過傳入引數來靈活打包

Mac 環境下 Android 使用 Jenkins 構建自動化打包

Mac 環境下 Android 使用 Jenkins 構建自動化打包

構建打包指令碼

Mac 環境下 Android 使用 Jenkins 構建自動化打包

這裡有這些選項,可以使用 Invoke Gradle script, 我這裡使用的是執行 shell

我們的專案打包是使用專案目錄下的 gradlew 執行指令碼,所以我直接使用 shell 來構建打包

Mac 環境下 Android 使用 Jenkins 構建自動化打包

這裡我執行了兩個 shell
需要解釋一下的是 echo xxx | sudo -S 這一段
由於我的電腦在本地打包時,執行 gradlew 必須使用 sudo 輸入我的電腦密碼,所以當執行指令碼時,我通過加上 -S 引數來從 echo xxx 這裡獲取到密碼,達到自動輸入密碼。
參考:使用帶密碼的sudo

第二段 shell 的完整如下

echo xxx | sudo -S $WORKSPACE/gradlew clean assemble${BUILD_TYPE}Channels -PchannelList=${CHANNEL}

$WORKSPACE 是你的工作目錄,可以檢視 可用的環境變數列表

需注意

由於我使用的是 gradlew 這時候如果直接打包的話會報錯

Mac 環境下 Android 使用 Jenkins 構建自動化打包

找不到 local.properties,該檔案在專案路根目錄,並且是不提交到 git 的,所以要手動在工作空間根目錄中建立該檔案,並寫入以下內容

## This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Tue Aug 24 17:18:51 CST 2021
sdk.dir=/Users/yang/Library/Android/sdk

配置完成後,就可以開始構建了。

Mac 環境下 Android 使用 Jenkins 構建自動化打包

構建成功後,就可以在你的工作空間看到打好的包了。

以上是最簡單的一個流程。

jenkins構建後操作archive the artfacts-歸檔成品的用法

Mac 環境下 Android 使用 Jenkins 構建自動化打包

Mac 環境下 Android 使用 Jenkins 構建自動化打包

Mac 環境下 Android 使用 Jenkins 構建自動化打包
以上,每一個 build 都會把打包好的檔案歸檔起來。永久儲存

參考文章:
Mac 環境下 Android 使用Jenkins 構建自動化打包_夏至的稻穗的部落格
jenkins構建後操作archive the artfacts-歸檔成品的用法
Jenkins構建時選擇釋出的分支

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章