Linux上配置jenkins打包機(jī) - Android

在Linux上配置android編繹環(huán)境 https://blog.csdn.net/apple9005/article/details/91620836
Jenkins上的配置 https://blog.csdn.net/zhaoyanjun6/article/details/77102359
Jenkins上的配置 http://www.itdecent.cn/p/06f11387c42a
fir-cli安裝 http://blog.betaqr.com/use-fir-cli-in-jenkins/
fir-cli官方文檔 https://github.com/FIRHQ/fir-cli/tree/master/doc

在Linux上的搭建Jenkins

mkdir -p dev/android
mkdir -p dev/jenkins
// 在/dev路徑下,下載jenkins.war
wget https://get.jenkins.io/war-stable/2.263.1/jenkins.war
// 后臺執(zhí)行jenkins服務(wù)
nohup java -jar /home/gitlab/dev/jenkins.war --httpPort=1234 >/home/gitlab/dev/jenkins/jenkins.log 2>&1 &

在Linux上配置android編繹環(huán)境

// 下載jdk (Linux已自帶,省略此步驟)
// 下載android SDK 
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
// 解壓縮
tar -zxvf android-sdk_r24.4.1-linux.tgz

// 下載SDK TOOLS
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux-4333796.zip
// sdk-tools 放在android-sdk-linux/tools/目錄下
mv ./tools ./sdk-tools
mv ./sdk-tools ./android-sdk-linux/
// 在/home/gitlab/dev/android/android-sdk-linux/sdk-tools/bin路徑下
./sdkmanager --list  # 查看已經(jīng)下載的版本,目前可下載的版本
./sdkmanager "platform-tools" "platforms;android-26"  # 下載26版本
// sdk授權(quán),執(zhí)行一下命令,全部選yes:
./sdkmanager --licenses

Jenkins上全局配置

登錄http://192.168.0.190:1234/ (也就是打包機(jī)的ip地址)
輸入密碼(密碼在Linux打包機(jī)上,用cat命令查看對應(yīng)路徑)
走“Install suggested plugins”安裝默認(rèn)Jenkins插件

JDK配置

Jenkins首頁=》系統(tǒng)管理=》全局工具配置=》JDK安裝

別名:JDK 1.8 (這個可以隨便寫)
JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 (Linux打包機(jī)的JDK存放的路徑)

?Gradle配置

入口與“JDK配置”一樣:Jenkins首頁=》系統(tǒng)管理=》全局工具配置=》Gradle

name: 隨便寫
版本:Gradle 5.4.1(選擇與項(xiàng)目版本相同的gradle)
點(diǎn)選“自動安裝”

ANDROID環(huán)境變量

Jenkins首頁=》系統(tǒng)管理=》系統(tǒng)設(shè)置=》全局屬性=》環(huán)境變量=》新增
鍵:ANDROID_HOME
值:/home/gitlab/dev/android/android-sdk-linux (Android SDK在打包機(jī)的所在路徑)

創(chuàng)建Android打包項(xiàng)目

“創(chuàng)建一個新任務(wù)” =》 “構(gòu)建一個自由風(fēng)格的軟件項(xiàng)目”

參數(shù)化構(gòu)建

添加參數(shù)BUILD_TYPE

(后面如想用這個參數(shù)的值,使用${BUILD_TYPE}調(diào)用)
選項(xiàng)為:

release
debug

添加參數(shù)BRANCH

選項(xiàng):develop
用與選擇不同分支代碼打包

源碼管理

點(diǎn)選"Git"
Repository URL: https://xxxxxx/Android.git (項(xiàng)目庫的git地址)
Credentials: Git訪問的賬號名、密碼。也可以不填,使用全局證書
指定分支: */${BRANCH}

構(gòu)建

Invoke Gradle Script
Gradle Version: 選擇全局定議的Gradle 5.4.1
Tasks:

app:clean     
app:assemble${BUILD_TYPE}

構(gòu)建后操作

用于存檔的文件:
app/build/outputs/apk/${BUILD_TYPE}/*.apk,app/build/outputs/mapping/release/mapping.txt

(就是在Linux打包機(jī)存放的打包的相對路徑,父路徑是:./.jenkins/workspace/XXAndroid)

提交到fir

需安裝rvm, 用rvm安裝ruby,用ruby安裝fir的項(xiàng)目fir-cli

出現(xiàn)問題

由于打包機(jī)沒配翻墻,無法安裝rvm,跳過rvm,改為手動安裝ruby

安裝ruby

 mkdir ruby
 cd ruby
 wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.2.tar.gz
 tar -xvzf ruby-2.7.2.tar.gz
 cd ruby-2.7.2/
 ./configure
 make
 sudo make install
 ruby -v

fir-cli安裝

sudo gem install fir-cli

在jenkins項(xiàng)目配置中添加腳本

XXAndroid=》配置=》構(gòu)建=》添加“執(zhí)行shell”
(其中xxxxxxxxxxxxxxx是fir的token,在fir官網(wǎng)個人中心獲得)

#!/bin/bash --login

fir login xxxxxxxxxxxxxxx
fir publish app/build/outputs/apk/${BUILD_TYPE}/app\-${BUILD_TYPE}.apk -q --no-qrcode
rm -rf app/build/outputs/apk/${BUILD_TYPE}/fir-xxx.png

踩坑

  1. 遇到打包失敗,要去console(控制臺輸出)中查看問題
  2. 有g(shù)radle無法下載資源庫的問題,需將代碼中的 maven { url 'https://maven.google.com' }改為maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
  3. 引入fir上傳功能后,第一次可以打包上傳成功,之后每次就打包失敗了。大致原因與fir自動生成的圖片有關(guān),有進(jìn)程一直在訪問該圖片,導(dǎo)致app:clean 執(zhí)行失敗。解決方法:在構(gòu)建后,腳本中加一句,將圖片刪除rm -rf app/build/outputs/apk/${BUILD_TYPE}/fir-xxAndroid.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容