在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
踩坑
- 遇到打包失敗,要去console(控制臺輸出)中查看問題
- 有g(shù)radle無法下載資源庫的問題,需將代碼中的 maven { url 'https://maven.google.com' }改為maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
- 引入fir上傳功能后,第一次可以打包上傳成功,之后每次就打包失敗了。大致原因與fir自動生成的圖片有關(guān),有進(jìn)程一直在訪問該圖片,導(dǎo)致app:clean 執(zhí)行失敗。解決方法:在構(gòu)建后,腳本中加一句,將圖片刪除
rm -rf app/build/outputs/apk/${BUILD_TYPE}/fir-xxAndroid.png