Anroid+Jenkins+Maven流水線構(gòu)建

需求背景

????基于多倉庫組件化項目繁疤;實現(xiàn)不同組件的jenkins自動構(gòu)建,構(gòu)建成功后將產(chǎn)物aar文件上傳到maven倉庫統(tǒng)一管理秕狰;最終觸發(fā)jenkins構(gòu)建App殼工程稠腊。構(gòu)建完成后自動上傳蒲公英內(nèi)測,并通過蒲公英觸發(fā)消息通知到飛書群鸣哀。

環(huán)境準備(Mac)

? ? nexus?

?????Download Repository OSS

? ? 下載完成后找個合適的目錄架忌,解壓。打開終端我衬,輸入statrt

? ?nexus啟動后?瀏覽器輸入http://localhost:8081/頁面如下:

? ?啟動成功后叹放,新建一個Maven2倉庫;Type選擇Hosted

? ? 至此Maven搭建結(jié)束挠羔。

Android項目增加配置

module(即需要上傳maven倉庫的module)下的build.gradle添加apply plugin: 'maven'井仰;build.gradle中添加maven倉庫的關(guān)聯(lián)

uploadArchives {

? ? repositories {

? ? ? ? mavenDeployer{

? ? ? ? ? ? repository(url:"http://127.0.0.1:8081/repository/Maizi/") {

? ? ? ? ? ? ? ? authentication(userName:"admin",password:"xx")}

? ? ? ? ? ? pom.project{

? ? ? ? ? ? ? ? //引用時使用如下格式:implementation 'groupId:artifactId:version'

? ? ? ? ? ? ? ? //版本號,有更新時修改版本號破加,在上傳

? ? ? ? ? ? ? ? version 1.0

? ? ? ? ? ? ? ? groupId"com.xx.xxx"

? ? ? ? ? ? ? ? pom.artifactId= "home"

? ? ? ? ? ? ? ? //默認配置不用修改

? ? ? ? ? ? ? ? packaging"aar"

? ? ? ? ? ? ? ? description "home Module"

? ? ? ? ? ? }

????????}

????}

}

在gradle命令中運行

????運行success后俱恶,可在nexus管理的maven倉庫里找到生成的aar包,以及對應(yīng)的依賴關(guān)系所指向的pom.xml范舀。

? ? 在其他組件引用該aar時要在項目的根build.gradle中添加如下信息

repositories { ...

mavenLocal()

}

allprojects {

repositories { ...

maven { url? ?MAVEN_URL}

????}

}

????至此就可以使用上傳項目中的方法和類速那。

?Jenkins

? ?Jenkins download and deployment?? ??

? ? 在安裝jenkins之前,我們要先具備jdk和gradle以及Apache(mac自帶)環(huán)境;

????安裝前環(huán)境準備參考

? ?Jdk1.8:Mac系統(tǒng)安裝JDK1.8及環(huán)境變量配置 - 簡書

? ?GradleMac OS下安裝Gradle - 簡書

? ?下載完成后【不要使用dmg方式安裝jenkins尿背,里面會有大量插件安裝失敗,各種配置問題】捶惜,直接運行jenkins.war田藐;運行成后后如下

????運行成功后;‘打開localhost:8080吱七,出現(xiàn)Unlock Jenkins(重設(shè)初始密碼)界面汽久;密碼在/Users/userName/.jenkins/secrets/initialAdminPassword**文件(下圖標注紅色路徑)中,打開文件景醇,復(fù)制密碼填到網(wǎng)頁密碼輸入框中三痰,繼續(xù)稚机。

? ? 選擇建議安裝

? ? 等待插件安裝完后充蓝;創(chuàng)建管理員賬號及密碼纬乍。初始化完成后進入jenkins頁面


點擊Manager Jenkins進入Manager Plugs檢查關(guān)鍵性插件是否存在

?Git插件: Git plugin彼城;Git Client募壕;Git Parameter Plug-In缰泡;

Gitlab插件:GitLab Plugin 和 Gitlab Hook Plugin

Android專用:Gradle plugin

Jenkins系統(tǒng)配置

進入Global Tool Configuration

1.新增jdk選擇1.8干毅;

2.新增git

3.新增gradle配置


點擊保存;至此jenkins的一些全局配置完畢叫乌。

Jenkins新建自由風格項目


點擊項目配置

可在常規(guī)配置選項卡里排宰,新增參數(shù)構(gòu)建国觉,這些參數(shù)將是

在Gradle命令里有assemble_Flavors_Release傲醉;所以我們要提前構(gòu)建好幾個常用參數(shù)呻引,比如是否release;渠道信息童谒,變體信息,分支信息等。在定于還有我們將在后續(xù)的“構(gòu)建”功能里用到以上參數(shù)。


在新建項目時已經(jīng)配置好的git倉庫信息

日常我們有觸發(fā)jenkins構(gòu)建的需要,例如提交代碼到指定分支時去自動構(gòu)建饱苟。此時需要安裝

Generic Webhook Trigger Plugin?插件类垦。可以在gitee倉庫配置webhook進行觸發(fā)jenkins構(gòu)建;也可以本地url直接觸發(fā)jenkins構(gòu)建。具體的觸發(fā)方式和webhook的使用方式可以參考:jenkins 搭建gitee實現(xiàn)代碼自動化部署 - 簡書

下面我們進行構(gòu)建配置

上傳蒲公英的配置請參考蒲公英官網(wǎng)配置文檔

蒲公英 - 文檔中心 - 使用 Jenkins 插件上傳應(yīng)用到蒲公英

在蒲公英上傳成功后澳骤,我們后續(xù)需要執(zhí)行一個shell腳本为肮,把蒲公英返回的信息【下載鏈接籽暇,二維碼舟山,更新說明】讀取并通過webhook發(fā)送至企業(yè)微信或者飛書。通知測試人員下載最新的apk文件進行測試累盗。

發(fā)送通知腳本如下

#---------------------------------------------------Begin-----------------------------------------------------------------

Webhook=https://open.feishu.cn/open-apis/bot/v2/hook/28e924bc-b971-4ec2-a1b7-72a19512ac17? #機器人Webhook地址

#----------------------------------------------------END-----------------------------------------------------------------

message=$buildQRCodeURL? #發(fā)送內(nèi)容

content=新版本構(gòu)建成功寒矿;二維碼地址為:

curl ${Webhook} \

? -H 'Content-Type: application/json' \

? -d '

? {

? ? ? ? "msg_type": "text",

? ? ? ? "content": {

? ? ? ? ? "text": "'$content$message'"

? ? ? ? }

? }'

以上為”構(gòu)建“tab的配置

下面我們將配置構(gòu)建成功后的操作,一般來時構(gòu)建成功后就是保存構(gòu)建的產(chǎn)物文件若债。


點擊保存符相。

配置完成后,jenkins項目如下


開發(fā)者可手動選擇參數(shù),指定分支啊终;然后開始構(gòu)建镜豹。也可以通過鉤子進行遠程觸發(fā)構(gòu)建。

在構(gòu)建完成后蓝牲,會將產(chǎn)物自動上傳至蒲公英趟脂,并根據(jù)蒲公英平臺返回的json。在做消息組裝和通知例衍;當然也可以配置發(fā)送郵件通知協(xié)作或測試人員昔期。配置郵箱的通知,這個留作和人作業(yè)把肄渗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載镇眷,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末翎嫡,一起剝皮案震驚了整個濱河市欠动,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惑申,老刑警劉巖具伍,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異圈驼,居然都是意外死亡人芽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門绩脆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萤厅,“玉大人,你說我怎么就攤上這事靴迫√栉叮” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵玉锌,是天一觀的道長名挥。 經(jīng)常有香客問我,道長主守,這世上最難降的妖魔是什么禀倔? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮参淫,結(jié)果婚禮上救湖,老公的妹妹穿的比我還像新娘。我一直安慰自己涎才,他們只是感情好鞋既,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般涛救。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上业扒,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天检吆,我揣著相機與錄音,去河邊找鬼程储。 笑死蹭沛,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的章鲤。 我是一名探鬼主播摊灭,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼败徊!你這毒婦竟也來了帚呼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤皱蹦,失蹤者是張志新(化名)和其女友劉穎煤杀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沪哺,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡沈自,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辜妓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枯途。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖籍滴,靈堂內(nèi)的尸體忽然破棺而出酪夷,到底是詐尸還是另有隱情,我是刑警寧澤异逐,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布捶索,位于F島的核電站,受9級特大地震影響灰瞻,放射性物質(zhì)發(fā)生泄漏腥例。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一酝润、第九天 我趴在偏房一處隱蔽的房頂上張望燎竖。 院中可真熱鬧,春花似錦要销、人聲如沸构回。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纤掸。三九已至脐供,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間借跪,已是汗流浹背政己。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掏愁,地道東北人歇由。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像果港,于是被迫代替她去往敵國和親沦泌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

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