Android + Linux + Jenkins + Git 自動(dòng)化打包

一.環(huán)境搭建

1.Jenkins 安裝

(1)首先安裝JDK 最低版本8.0

????命令:yum -y install java-1.8.0-openjdk-devel

????驗(yàn)證:java -version

(2)通過(guò)yum命令安裝Jenkins

? ? ? ? 詳見(jiàn):https://pkg.jenkins.io/redhat/

????1)sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

????2)sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

? ? 3)sudo yum -y install jenkins

2.安裝插件

?1)cd 到需要下載的目錄,下載gradle

????# wget https://services.gradle.org/distributions/gradle-6.1.1-all.zip

?2)解壓gradle

? ??# unzip gradle-6.1.1-all.zip

3)cd 到需要下載的目錄盅粪,先去下載Android sdk,http://tools.android-studio.org/index.php/sdk,上傳到目錄下解壓

? ? #?tar -zxvf android-sdk_r24.4.1-linux.tgz

4)gradle 和android sdk 配置變量

? ? 打開(kāi)系統(tǒng)管理 - 系統(tǒng)配置,找到全局屬性茂嗓,勾選環(huán)境變量颖榜,配置信息如下圖

????配置Android sdk 和 gradle 環(huán)境變量

????# cd /etc/profile.d/

? ? # vim android.sh

? ? 編輯

????export ANDROID_HOME="/usr/local/android-sdk-linux"

????export GRADLE_HOME="/usr/local/gradle-6.1.1"

????export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$GRADLE_HOME/bin:$PATH"

? ? 進(jìn)入進(jìn)入系統(tǒng)設(shè)置 - 全局工具配置,配置gradle JDK以及git


5)git 插件

? ? linux 安裝git

? ?#?yum -y install git?

? ? 進(jìn)入系統(tǒng)設(shè)置 - 插件管理属韧,輸入git parameter,下載插件

? ? 進(jìn)入Android 項(xiàng)目設(shè)置蛤吓,參數(shù)化構(gòu)建過(guò)程新建$BRANCH

源碼管理宵喂,配置倉(cāng)庫(kù)地址


3.Android 參數(shù)構(gòu)建

? ? 應(yīng)公司要求,需要?jiǎng)討B(tài)打包的功能有:替換logo会傲,應(yīng)用名稱锅棕,公司官網(wǎng),公司名稱淌山,啟動(dòng)頁(yè)裸燎,公司logo等,

? ? 在Android 項(xiàng)目gradle.properties 文件添加配置泼疑,我們使用gradle打包顺少,這里配置參數(shù)將被賦值。注意王浴,gradle配置脆炎,一定要勾選Pass all job parameters as System properties,我在這里卡了很久氓辣,一直參數(shù)沒(méi)法讀取秒裕。

? ? 配置參數(shù)如下:

3.執(zhí)行shell,替換圖片

cd ${WORKSPACE}

# 1. RCE應(yīng)用logo钞啸,圖片為png格式

rce_ic_logo_file="rce_ic_logo.png"

# 2. 通知欄小圖標(biāo)几蜻,圖片為png格式

notification_small_icon_file="notification_small_icon.png"

# 3. 公司logo,圖片為png格式

rce_ic_company_logo_file="rce_ic_company_logo.png"

# 4. 啟動(dòng)頁(yè)体斩,圖片為png格式

rce_splash_bg_file="rce_splash_bg.png"

# 上傳的圖標(biāo)會(huì)放在當(dāng)前Jenkins項(xiàng)目的根目錄梭稚,下面判斷$iconFile是否存在

if [ -f "$rce_ic_logo_file" ]; then

? #分別替換下列資源

? #1. RCE應(yīng)用logo,圖片為png格式? ? rcekit/src/main/res/drawable-xhdpi

? rce_ic_logo_path_base_xh="${WORKSPACE}/rcebase/src/main/res/drawable-xhdpi"

? rce_ic_logo_path_image_xh="${WORKSPACE}/imageeditor/src/main/res/drawable-xhdpi"

? rce_ic_logo_path_mip_hdpi="${WORKSPACE}/rcekit/src/main/res/mipmap-hdpi"

? rce_ic_logo_path_mip_mdpi="${WORKSPACE}/rcekit/src/main/res/mipmap-mdpi"

? rce_ic_logo_path_mip_xhdpi="${WORKSPACE}/rcekit/src/main/res/mipmap-xhdpi"

? rce_ic_logo_path_mip_xxhdpi="${WORKSPACE}/rcekit/src/main/res/mipmap-xxhdpi"

? rce_ic_logo_path_mip_xxxhdpi="${WORKSPACE}/rcekit/src/main/res/mipmap-xxxhdpi"

? #convert -resize 512x512 rce_ic_logo.png rce_ic_logo.png

? cp rce_ic_logo.png ${rce_ic_logo_path_mip_xxxhdpi}

? #convert -resize 384x384 rce_ic_logo.png rce_ic_logo.png

? cp rce_ic_logo.png ${rce_ic_logo_path_mip_xxhdpi}

? #convert -resize 256x256 rce_ic_logo.png rce_ic_logo.png

? cp rce_ic_logo.png ${rce_ic_logo_path_mip_xhdpi}

? #convert -resize 192x192 rce_ic_logo.png rce_ic_logo.png

? cp rce_ic_logo.png ${rce_ic_logo_path_mip_hdpi}

? #convert -resize 192x192 rce_ic_logo.png rce_ic_logo.png

? cp rce_ic_logo.png ${rce_ic_logo_path_mip_mdpi}

? #convert -resize 192x192 rce_ic_logo.png rce_ic_logo.png

? cp rce_ic_logo.png ${rce_ic_logo_path_base_xh}

? #convert -resize 192x192 rce_ic_logo.png rce_ic_logo.png

? cp rce_ic_logo.png ${rce_ic_logo_path_image_xh}

fi

if [ -f "$notification_small_icon_file" ]; then

? notification_small_icon_path="${WORKSPACE}/rcekit/src/main/res/drawable-xhdpi"

? #convert -resize 192x192 notification_small_icon.png notification_small_icon.png

? mv notification_small_icon.png ${notification_small_icon_path}

fi

if [ -f "$rce_ic_company_logo_file" ]; then

? rce_ic_company_logo_path="${WORKSPACE}/rcekit/src/main/res/drawable-xxhdpi"

? mv rce_ic_company_logo.png ${rce_ic_company_logo_path}

fi

if [ -f "$rce_splash_bg_file" ]; then

? rce_splash_bg_path="${WORKSPACE}/rcekit/src/main/res/drawable-xxhdpi"

? mv rce_splash_bg.png ${rce_splash_bg_path}

fi

3.執(zhí)行shell絮吵,將生成的apk發(fā)不到Tomcat上弧烤,供下載

????1)安裝Tomcat,這里就自行安裝

????2)我是將生成的apk直接移動(dòng)到tomcat 的webapp download 目錄下蹬敲,然后重啟tomcat

? ? ? ? ?執(zhí)行shell

cd ${WORKSPACE}/rce/build/outputs/apk/release/

cp ${WORKSPACE}/rce/build/outputs/apk/release/*.apk /usr/local/tomcat/apache-tomcat-9.0.22/webapps/download

cd /usr/local/tomcat/apache-tomcat-9.0.22/bin

./startup.sh

4.歸檔操作

完結(jié)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末暇昂,一起剝皮案震驚了整個(gè)濱河市莺戒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌急波,老刑警劉巖从铲,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異澄暮,居然都是意外死亡名段,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門泣懊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吉嫩,“玉大人,你說(shuō)我怎么就攤上這事嗅定。” “怎么了用踩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵渠退,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我脐彩,道長(zhǎng)碎乃,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任惠奸,我火速辦了婚禮梅誓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘佛南。我一直安慰自己梗掰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布嗅回。 她就那樣靜靜地躺著及穗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绵载。 梳的紋絲不亂的頭發(fā)上埂陆,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音娃豹,去河邊找鬼焚虱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛懂版,可吹牛的內(nèi)容都是我干的鹃栽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼躯畴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼谍咆!你這毒婦竟也來(lái)了禾锤?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤摹察,失蹤者是張志新(化名)和其女友劉穎恩掷,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體供嚎,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡黄娘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了克滴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逼争。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖劝赔,靈堂內(nèi)的尸體忽然破棺而出誓焦,到底是詐尸還是另有隱情,我是刑警寧澤着帽,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布杂伟,位于F島的核電站,受9級(jí)特大地震影響仍翰,放射性物質(zhì)發(fā)生泄漏赫粥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一予借、第九天 我趴在偏房一處隱蔽的房頂上張望越平。 院中可真熱鬧,春花似錦灵迫、人聲如沸秦叛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)书闸。三九已至,卻和暖如春利凑,著一層夾襖步出監(jiān)牢的瞬間浆劲,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工哀澈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留牌借,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓割按,卻偏偏與公主長(zhǎng)得像膨报,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容