寫在前面
折騰了幾天揩徊,終于把jenkins持續(xù)集成Android應(yīng)用的環(huán)境部署好了俊鱼。一開始用Tomcat+war包的方式部署蛹磺,期間遇到很多莫名奇妙的問(wèn)題搓劫,嘗試了很多方法瞧哟,換過(guò)版本,重啟過(guò)服務(wù)器都不行枪向。后來(lái)?yè)Q了jenkins的安裝程序绢涡,然后莫名又好了。
所以遣疯,這里就記錄下安裝包的部署方式。其實(shí)配置都是一樣的...[捂臉]
環(huán)境準(zhǔn)備
操作系統(tǒng)
系統(tǒng): Windows Server
內(nèi)存: 8G
系統(tǒng)類型: 64位操縱系統(tǒng)
安裝準(zhǔn)備
- Jenkins
- JDK (配置環(huán)境變量)
- SDK (配置環(huán)境變量 ANDROID_HOME)
- Git
- Gradle
Jenkins的安裝
進(jìn)入jenkins官網(wǎng)下載頁(yè) , 點(diǎn)擊“Download Jenkins”按鈕凿傅。
下載完成后點(diǎn)擊安裝缠犀。
這樣就已經(jīng)完成安裝了,so easy聪舒。
啟動(dòng)服務(wù)
java -jar jenkins.war
配置
接下來(lái)就是最關(guān)鍵的地方了辨液。
登錄
首次打開,使用Admin登錄箱残,密碼在安裝目錄下:/secrets/initialAdminPassword
插件安裝
首次打開會(huì)推薦你安裝一些插件滔迈,選中自己需要的插件安裝下就好止吁;如果全部安裝的話,比特別慢(也有可能是我們網(wǎng)絡(luò)的問(wèn)題 Orz..)
我們所需要的插件:
- git plugin (從GitLab上拉取版本)
- Android Lint plugin (Android代碼靜態(tài)分析)
- gradle plugin (編譯打包)
- Email Extension Plugin (郵件通知燎悍,默認(rèn)的郵件通知只能在構(gòu)建失敗時(shí)發(fā)送郵件敬惦,這個(gè)插件可以選擇各個(gè)結(jié)果發(fā)送給不同的人)
如果在首次進(jìn)入系統(tǒng)時(shí),沒(méi)有選擇安裝插件谈山,或者安裝不全俄删,也可以在進(jìn)入系統(tǒng)之后,點(diǎn)擊 管理插件 然后在可選插件中搜索需要安裝的插件奏路。
工具配置
點(diǎn)擊 Global Tool Configuration
配置JDK
配置Git
gradle配置 (這里用的自動(dòng)安裝畴椰,沒(méi)有用本地的,無(wú)差別)
新建項(xiàng)目
做好以上配置后鸽粉,就可以新建項(xiàng)目來(lái)構(gòu)建了斜脂。以下,通過(guò)創(chuàng)建一個(gè)Test項(xiàng)目為例:
點(diǎn)擊新建触机;輸入Job的名稱帚戳,選擇一個(gè)自由風(fēng)格的軟件項(xiàng)目
源碼管理
填寫Repository URL,選擇一個(gè)擁有權(quán)限的Credentials威兜,填寫需要拉取的分支销斟。
如果需要添加Credentials的話,則點(diǎn)擊Add
默認(rèn)情況下椒舵,如果repository URL 沒(méi)有寫Scheme的話是SSH的協(xié)議方式蚂踊,因此添加Credentials的時(shí)候:
- Kind 選擇 SSH Username with private key
- 1的地方填寫git的用戶名
- 2的地方填寫git的SSH的私鑰
構(gòu)建觸發(fā)器
選擇Poll SCM,設(shè)置如下:
圖里的設(shè)置表示:每三個(gè)小時(shí)check一次git版本笔宿,如果版本有更新犁钟,則構(gòu)建,否則不構(gòu)建泼橘。
這里的五個(gè)參數(shù)分別代表著:MINUTE HOUR DOM MONTH DOW涝动;具體的解釋,以及如何配置可以點(diǎn)擊右側(cè)的問(wèn)號(hào)來(lái)查看文檔炬灭。不再詳述醋粟。
構(gòu)建
選擇 Invoke Gradle script
選擇Gradle的版本(即剛在Global Tool中添加的Gradle);Task的地方設(shè)置如下clean build --stacktrace --debug
點(diǎn)擊保存重归,新建構(gòu)建項(xiàng)目就已經(jīng)完成了米愿。
在My View的頁(yè)面,點(diǎn)擊對(duì)應(yīng)項(xiàng)目的構(gòu)建計(jì)劃鼻吮,即可構(gòu)建育苟。
項(xiàng)目源碼會(huì)被下載到C:\Users\Administrator\.jenkins\jobs\Test\workspace
中,APK打包在項(xiàng)目對(duì)應(yīng)的build中椎木。
權(quán)限通知
當(dāng)我們存在多個(gè)項(xiàng)目的時(shí)候违柏,出于對(duì)項(xiàng)目安全的考慮博烂,同時(shí)也避免不相關(guān)的項(xiàng)目出現(xiàn)在自己的View中,可以對(duì)測(cè)試人員的操作權(quán)限漱竖,項(xiàng)目的權(quán)限進(jìn)行設(shè)置禽篱。
點(diǎn)擊Configure Global Security ,在訪問(wèn)控制里面的授權(quán)策略中選取項(xiàng)目矩陣授權(quán)策略
- Overall:全局的權(quán)限闲孤,包括管理員(最大權(quán)限)谆级;全局配置權(quán)限,升級(jí)插件權(quán)限讼积,讀權(quán)限
- Credentials:憑證管理權(quán)限
- Job:構(gòu)建項(xiàng)目權(quán)限
一般情況下肥照,我們給到測(cè)試只要勾選Overall 中的Read即可
特別注意!特別注意勤众!特別注意舆绎!如果使用項(xiàng)目矩陣授權(quán)策略,請(qǐng)一定要把當(dāng)前的Admin權(quán)限添加進(jìn)去们颜,并選擇Administer權(quán)限
全局權(quán)限配置之后吕朵,還需要到相應(yīng)的項(xiàng)目中配置權(quán)限。否則是看不到相應(yīng)的項(xiàng)目的窥突。
選擇我們剛剛新建的Test項(xiàng)目努溃,進(jìn)入到配置中:選擇啟動(dòng)項(xiàng)目安全;根據(jù)需求添加相應(yīng)的人員阻问,并勾選相應(yīng)的權(quán)限梧税。
郵件通知
默認(rèn)的郵件通知只能在構(gòu)建失敗的時(shí)候發(fā)送郵件給相應(yīng)的人員。還記得在開始的時(shí)候安裝的Email Extension Plugin 插件么称近?這個(gè)插件可以根據(jù)我們的需求發(fā)送郵件給對(duì)應(yīng)的開發(fā)or測(cè)試第队。
首先需要在系統(tǒng)設(shè)置中,配置一些基本信息:
然后配置下收件人刨秆,郵件模版:
系統(tǒng)配置完成之后凳谦,其實(shí)還是收不到郵件的,還需要到相應(yīng)的項(xiàng)目中設(shè)置衡未。
在相應(yīng)項(xiàng)目的配置中增加構(gòu)建后操作步驟尸执,選擇Editable Email Notification
已有的字段就用默認(rèn)的設(shè)置,不需要修改缓醋;點(diǎn)擊 Advanced Settings剔交,在Triggers中進(jìn)行設(shè)置。
這里需要說(shuō)明下:按照?qǐng)D中的描述改衩,這里是說(shuō)構(gòu)建失敗發(fā)送給開發(fā),那么開發(fā)是指誰(shuí)呢驯镊?是指此次構(gòu)建與上次構(gòu)建之間提交代碼的人 葫督,郵箱地址會(huì)通過(guò)git的提交記錄中獲取竭鞍。
點(diǎn)擊Add,選擇Recipient List 橄镜,這里的Recipient List 是我們?cè)谙到y(tǒng)設(shè)置中填寫的收件人偎快,如果除了默認(rèn)的收件人還需要增加其他收件人怎么辦?
就是剛進(jìn)入Editable Email Notification的時(shí)候里有默認(rèn)的參數(shù)設(shè)置Project Recipient List洽胶,在這個(gè)里面繼續(xù)添加需要通知的人員郵件地址晒夹,用逗號(hào)隔開。
然后點(diǎn)擊Add Trigger姊氓,增加觸發(fā)郵件通知條件丐怯。
其他,增加收件人配置與上面一致翔横。
到這里读跷,Jenkins的所有的配置都已經(jīng)完成了。