基于Jenkins的Android自動化打包分享

前言

開發(fā)人員手動打包不僅浪費開發(fā)時間,打斷開發(fā)思路,又不能及時給測試或者運營人員安裝包,費力不討好,你懂得,所有就有了自動化打包。大部分公司都配置的有打包平臺,但有的朋友還不知道如何配置以及工作原理,本文就來分享下基于Jenkins的Android自動化打包。

為什么用Jekins自動化打包

為什么用jenkins打包,以及jenkins優(yōu)點,官網(wǎng) https://jenkins.io/ 自行查看。

怎樣使Jekins自動化打Android開發(fā)包

jenkins下載與安裝

jenkins安裝分兩種,一種是下載jenkins安裝包,本地安裝jenkins,但是這樣本地會多一個用戶名為jenkins的用戶,另一種是下載jenkins的war包。建議直接下載jenkins的war包,然后將jenkins的war包放在tomcat的webapps目錄下,然后在本地訪問jenkins的管理頁面,同樣適用于服務(wù)器。具體如何搭建服務(wù)器,可以參考這篇文章,Android開發(fā)者如何搭建服務(wù)器。

tomcat進(jìn)入 https://tomcat.apache.org/ 官網(wǎng),下載最新的 tomcat 安裝包并且安裝。

進(jìn)入jenkins 的官網(wǎng) https://jenkins.io/ , 根據(jù)你搭建平臺的不同,下載 jenkins war 包 ,我這里用 mac 平臺做演示。

jenkins下載頁面.png

通過指令啟動tomcat,然后打開 http://localhost:8080/jenkins/, 進(jìn)入jenkins管理頁面。

啟動tomcat.png

第一次打開jenkins頁面會給一個管理員用戶,并且給出默認(rèn)管理員密碼。

image.png

如果你想修改管理員密碼,執(zhí)行下面命令。

cd /Users/fengyongge/.jenkins/secrets
open initialAdminPassword

然后在這個文件里面添加新的管理員密碼。

jenkins配置

jenkins配置android的自動化打包,主要分為插件的安裝,全局工具配置,環(huán)境變量的配置3部分。

系統(tǒng)管理-管理插件

插件的安裝取決于你打包時候各個功能的需求,如果只是簡單的打包,需要的插件并不多,以下介紹幾種插件。

注解 解釋
Android Lint Plugin 允許Jenkins直接調(diào)用Gradle構(gòu)建腳本
Gradle Plugin 允許Jenkins直接調(diào)用Gradle構(gòu)建腳本
Git plugin 允許Jenkins直接調(diào)用Gradle構(gòu)建腳本
Upload to pgyer 上傳APK、IPA文件到pgyer(蒲公英)
Publish Over SSH 通過ssh發(fā)送構(gòu)建工件
SSH plugin 使用ssh協(xié)議遠(yuǎn)程執(zhí)行shell命令。
…… ……

然后通過搜索過濾你想要安裝的插件,然后restart jenkins。

插件管理頁面.png

系統(tǒng)管理-全局工具配置

全局工具配置,既可以選擇在線安裝,也可以選擇本地已經(jīng)安裝的,然后添加工具配置,建議后者,必經(jīng)這些工具你在開發(fā)的時候也需要。

首先你本地或者服務(wù)器上要安裝jdk,gradle,sdk,然后去配置環(huán)境變量,最后添加到j(luò)enkins的工具配置,筆者的配置。

#jdk 
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home"
export PATH="$JAVA_HOME/bin:$PATH:."
#gradle 
export GRADLE_HOME=/Applications/Android\ Studio.app/Contents/gradle/gradle-4.6   
export PATH=$GRADLE_HOME/bin:$PATH

環(huán)境變量配置后,可以去驗證是否配置成功,如果配置成功后,可以根據(jù)你配置的環(huán)境變量的變量名去驗證。

echo $JAVA_HOME
/Library/java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin
echo $GRADLE_HOME
/Applications/Android Studio.app/Contents/gradle/gradle-4.6

mac上gradle的環(huán)境配置有可能遇到坑,可以參考這篇文章Mac上配置gradle環(huán)境。除此之外,如果你的版本控制工具如果是git的話,需要本地安裝git,然后配置git環(huán)境變量,然后在jenksin的系統(tǒng)管理-全局工具配置配置Jdk,Git,Gradle本地環(huán)境。

全局工具配置.png

系統(tǒng)管理-系統(tǒng)設(shè)置

系統(tǒng)設(shè)置,就是配置全局設(shè)置和路徑,在這里,我們只需要配置android sdk的環(huán)境變量。


android sdk環(huán)境變量配置.png

系統(tǒng)管理-新建項目-配置項目

在jenkins管理頁面,新建任務(wù),輸入一個任務(wù)名稱,選擇構(gòu)建一個自由風(fēng)格的軟件項目,點擊確定。


新建項目.png

創(chuàng)建項目成功的頁面


demo項目.png

項目上面的展示構(gòu)建成功,構(gòu)建失敗,以及上次構(gòu)建的時間信息等,這時候你點擊右邊的運行會提示打包失敗,因為你還需要對項目進(jìn)行配置,項目的配置主要分為General 源碼管理,構(gòu)建觸發(fā)器,構(gòu)建,構(gòu)建后操作。點擊項目名稱,進(jìn)入configure配置。


項目配置.png
General
源碼管理:

選擇無或者git。如果選擇git,需要添加項目的git地址,以及項目的分支,以及對項目管理權(quán)限的git賬戶信息。


image.png

選擇無的話,可以通過shell腳本,執(zhí)行進(jìn)入本地checkout的項目,然后進(jìn)行更新代碼進(jìn)行打包操作指令,前提是本地已經(jīng)配置了git賬號信息,下面在有介紹。

構(gòu)建觸發(fā)器

構(gòu)建觸發(fā)器常用的就是定時構(gòu)建,例如每天的10點,觸發(fā)自動構(gòu)建,打一個新鮮出爐的新包。定時構(gòu)建語法自行百度,在這不做探討。


image.png
構(gòu)建:

構(gòu)建這塊應(yīng)該是比較重要的,構(gòu)建可以通過gradle腳本,或者shell腳本等。如果是通過gradle腳本命令配置如下。


image.png

如果源碼管理你選擇的是無的話,就可以通過shell腳本,來進(jìn)行更新代碼,切換分支,執(zhí)行打包,指令如下。筆者使用的都是shell腳本,也推薦這種做法。

cd /Users/fengyongge/git/component
source /etc/profile
git checkout master
git pull
/Applications/Android\ Studio.app/Contents/gradle/gradle-4.6/bin/gradle -p 
/Users/fengyongge/git/component --stacktrace --info clean assembleRelease

下面是通過shell腳本上傳到第三方分發(fā)平臺,除了shell腳本外,還可以使用插件,構(gòu)建后的操作會做介紹。

cd /Users/fengyongge/git/component
apk_file=`find . -name '*.apk' | grep -v 'unaligned' | tail -n 1`

echo $apk_file
echo "curl -F "file=$apk_file" -F "uKey=fceccf48c73404982ba2e2af49fc43d3" \
-F "_api_key=daa2afcb08bdb21fcfd9645d6aa8c841" https://qiniu-storage.pgyer.com/apiv1/app/upload"

curl -F "file=@$apk_file" -F "uKey=fceccf48c73404982ba2e2af49fc43d3" \
-F "_api_key=daa2afcb08bdb21fcfd9645d6aa8c841" https://qiniu-storage.pgyer.com/apiv1/app/upload
image.png
構(gòu)建后操作

如果將安裝包上傳到第三方分發(fā)平臺,不習(xí)慣腳本的方式的話,下面有更簡單的方式,有可視頁面,通過安裝插件,填寫信息即可。

如何上傳到蒲公英

在管理插件頁面,搜索上傳蒲公英平臺插架-Upload to pgyer,然后安裝,安裝之后你在構(gòu)建后的操作會看到有Upload to payer with apiV1。


image.png

選擇Upload to payer with apiV1填寫你的蒲公英uKey、api_key、apk安裝路徑,這個插件詳情使用,具體參考 https://www.pgyer.com/doc/view/plugin_github

image.png

如何上傳到fir.im

由于開發(fā)者沒有將插件上傳到插件庫里面,所以在插件管理里面搜索不到,因此fir的插件需要現(xiàn)在本地上傳下,然后在使用。主要步驟如下:
1:下載插件,在系統(tǒng)管理-插件管理-高級-上傳插件
2:安裝插件
3:使用插件,配置-構(gòu)建后操作-增加構(gòu)建后操作步驟-Upload to fir.im
4:填寫 API Token
具體參考 http://blog.fir.im/jenkins/

image.png

jenkins配置完之后,就可以運行任務(wù)了,這時候幾分鐘后你在你的蒲公英或者fir.im平臺就能看到新的apk安裝包。如果打包失敗,可以去點擊你的項目去Console Output看控制臺輸入,然后重新打包即可。蒲公英下載頁面截圖 :

image.png

fir下載頁面截圖:


image.png

寫在最后

以上就是我對基于Jenkins的Android自動化打包操作步驟的分享。如有問題,評論探討,謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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