一、背景
在實(shí)際項(xiàng)目開(kāi)發(fā)中磺箕,自測(cè)完成后奖慌,需要給到測(cè)試人員安裝包進(jìn)行測(cè)試,在這一過(guò)程中松靡,如果使用手動(dòng)打包简僧,這一過(guò)程就會(huì)比較耗時(shí),如果電腦配置較差雕欺,可能還會(huì)引起電腦卡頓造成無(wú)法同步開(kāi)發(fā)等等岛马,現(xiàn)在有了jenkins這一神器,就可以解放雙手阅茶,提交代碼的同時(shí)就可以實(shí)現(xiàn)同步打包蛛枚,并且可以隨時(shí)可測(cè)。
一脸哀、簡(jiǎn)介
Jenkins是開(kāi)源CI&CD軟件領(lǐng)導(dǎo)者蹦浦, 提供超過(guò)1000個(gè)插件來(lái)支持構(gòu)建、部署撞蜂、自動(dòng)化盲镶, 滿足任何項(xiàng)目的需要。它的優(yōu)勢(shì)在于以下幾點(diǎn):
持續(xù)集成和持續(xù)交付
作為一個(gè)可擴(kuò)展的自動(dòng)化服務(wù)器蝌诡,Jenkins 可以用作簡(jiǎn)單的 CI 服務(wù)器溉贿,或者變成任何項(xiàng)目的持續(xù)交付中心。簡(jiǎn)易安裝
Jenkins 是一個(gè)基于 Java 的獨(dú)立程序浦旱,可以立即運(yùn)行宇色,包含 Windows、Mac OS X 和其他類 Unix 操作系統(tǒng)。配置簡(jiǎn)單
Jenkins 可以通過(guò)其網(wǎng)頁(yè)界面輕松設(shè)置和配置宣蠕,其中包括即時(shí)錯(cuò)誤檢查和內(nèi)置幫助例隆。插件
通過(guò)更新中心中的 1000 多個(gè)插件,Jenkins 集成了持續(xù)集成和持續(xù)交付工具鏈中幾乎所有的工具抢蚀。擴(kuò)展
Jenkins 可以通過(guò)其插件架構(gòu)進(jìn)行擴(kuò)展镀层,從而為 Jenkins 可以做的事提供幾乎無(wú)限的可能性。分布式
Jenkins 可以輕松地在多臺(tái)機(jī)器上分配工作皿曲,幫助更快速地跨多個(gè)平臺(tái)推動(dòng)構(gòu)建唱逢、測(cè)試和部署。
對(duì)于詳細(xì)的資料屋休,可前往jenkins官網(wǎng)自行下載安裝包及配置文檔坞古。
三、安裝jenkins
- 前往官網(wǎng)手動(dòng)下載安裝包進(jìn)行安裝
- 使用
brew
安裝最新版本
brew install jenkins
- 安裝 LTS 版本
brew install jenkins-lts
四博投、解鎖jenkins
1绸贡、安裝結(jié)束后盯蝴,終端輸入命令:
jenkins
2毅哗、啟動(dòng)服務(wù)后,前往瀏覽器訪問(wèn)http://localhost:8080
捧挺,如果是第一次啟動(dòng)虑绵,需要輸入密碼進(jìn)行訪問(wèn),可按照瀏覽器提示的路徑進(jìn)行密碼的獲取闽烙,復(fù)制到輸入框后點(diǎn)擊繼續(xù)即可解鎖
3翅睛、安裝插件
- 安裝建議的插件:安裝推薦的一組插件,這些插件基于最常見(jiàn)的用例
- 自定義安裝插件:通過(guò)Jenkins中的
Manage Jenkins
>Manage Plugins
頁(yè)面在稍后的時(shí)間點(diǎn)安裝(或刪除)其他Jenkins插件
4黑竞、配置管理員賬戶
五捕发、安裝自定義插件
目前安裝的自定義插件主要有Xcode integration
和Keychains and Provisioning Profiles Management
,下面主要介紹如何安裝Keychains and Provisioning Profiles Management
及配置.
1很魂、安裝Keychains and Provisioning Profiles Management
的一款插件扎酷,用來(lái)管理kechain和iOS證書
2、前往Manage Jenkins
> Keychains and Provisioning Profiles Management
上傳文件及設(shè)置遏匆,
這里需要上傳Keychain和Provisioning Profile文件法挨。
上傳Keychain文件,文件路徑在
~/Library/Keychains
幅聘,將文件login.keychain-db
拷貝一份凡纳,去掉后綴-db
,即可上傳帝蒿,上傳成功后荐糜,在Code Signing Identity
處填寫證書名稱,可填寫多個(gè)證書名稱,一般選擇開(kāi)發(fā)和生產(chǎn)兩個(gè)證書就可以了暴氏,可前往鑰匙串中找到對(duì)應(yīng)的證書丛版,復(fù)制粘貼名稱即可。如iPhone Distribution: Guangdong xxx(xxxx)
偏序、iPhone Developer: xiao ming (75CJYJS52)
.上傳Provisioning Profile描述文件页畦,去開(kāi)發(fā)者平臺(tái)下載對(duì)應(yīng)的dev、dis研儒、ad-hoc描述文件上傳即可豫缨,上傳完成后會(huì)自動(dòng)填充相關(guān)信息,在
Provisioning Profiles Directory Path
處填寫描述文件安裝的路徑端朵,如/Users/xiaoming/Library/MobileDevice/Provisioning Profiles
.
六好芭、新建任務(wù)
一、jenkins->新建任務(wù)
二冲呢、輸入一個(gè)任務(wù)名稱舍败,一般按照一定的規(guī)范進(jìn)行命名,比如iOS_xxx
敬拓,接下來(lái)選擇工程風(fēng)格邻薯,優(yōu)先使用之前已配置好過(guò)的項(xiàng)目,這樣就只要改少量配置就可以了乘凸,如果是需要逐步手動(dòng)配置厕诡,一般選擇freestyle project
進(jìn)行配置
三、配置
General
描述:自定義营勤,可以用來(lái)描述此次工程的功能灵嫌,比如這是iOSxxx迭代分支功能
丟棄舊的構(gòu)建:打勾
策略:可以根據(jù)自己的需求進(jìn)行選擇,比如保持構(gòu)建天數(shù)5天葛作,構(gòu)建的最大數(shù)目30等等源碼管理(Git)
Repository URL:填寫自己項(xiàng)目的git地址
Credentials:填寫https賬戶密碼或ssh密鑰
指定分支:填寫自己要打包的分支寿羞,例如*/feature-xxx
構(gòu)建觸發(fā)器
可選擇Poll SCM輪詢構(gòu)建,例如H/15 * * * *
每15分鐘構(gòu)建一次構(gòu)建環(huán)境
勾選Set jenkins user build variables
赂蠢,這是為了后面的自定義版本號(hào)做的配置構(gòu)建
先選擇添加X(jué)code選項(xiàng)绪穆,如果沒(méi)有這個(gè)選項(xiàng),需要先添加Xcode integration
插件Versioning
勾選Provide version number and run avgtool?
Marketing version:例如1.1.0
Technical version:例如Demo-${BUILD_NUMBER}
Execute shell
這里添加需要執(zhí)行的操作客年,比如執(zhí)行一些打包的配置霞幅、資源的檢測(cè)、上傳第三包平臺(tái)的執(zhí)行等等量瓜,例如
cd ${WORKSPACE}
python3 ./jenkins_stringCheck.py
./source_replace.sh 0
cd ..
python package.py -b -1 -u fir -d ${JOB_NAME}
#python package.py -b -1 -u pgyer -d ${JOB_NAME}
#python package.py -b -1 -u all -p production -d ${JOB_NAME}
- 構(gòu)建后操作
可根據(jù)自己的需求選擇司恳,例如想將打包后的IPA包放到FTP上,就可以添加Send build artifacts over FTP
七绍傲、總結(jié)
總的來(lái)說(shuō)扔傅,jenkins的確是非常強(qiáng)大且高度自定義耍共,有效的提高了N倍的交付效率。關(guān)于它的更多配置猎塞,也只有在未來(lái)工作學(xué)習(xí)中不斷學(xué)習(xí)和嘗試试读,需求一套適合自己或者公司的解決方案。