jenkins自動(dòng)化部署打包流程

一、背景

在實(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 integrationKeychains 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í)和嘗試试读,需求一套適合自己或者公司的解決方案。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荠耽,一起剝皮案震驚了整個(gè)濱河市钩骇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铝量,老刑警劉巖倘屹,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異慢叨,居然都是意外死亡纽匙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門拍谐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)烛缔,“玉大人,你說(shuō)我怎么就攤上這事轩拨〖桑” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵气嫁,是天一觀的道長(zhǎng)当窗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)寸宵,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任元咙,我火速辦了婚禮梯影,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庶香。我一直安慰自己甲棍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布赶掖。 她就那樣靜靜地躺著感猛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奢赂。 梳的紋絲不亂的頭發(fā)上陪白,一...
    開(kāi)封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音膳灶,去河邊找鬼咱士。 笑死立由,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鲫惶。 我是一名探鬼主播骏啰,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼沉迹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了道盏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤文捶,失蹤者是張志新(化名)和其女友劉穎捞奕,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拄轻,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡颅围,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恨搓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片院促。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖斧抱,靈堂內(nèi)的尸體忽然破棺而出常拓,到底是詐尸還是另有隱情,我是刑警寧澤辉浦,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布弄抬,位于F島的核電站,受9級(jí)特大地震影響宪郊,放射性物質(zhì)發(fā)生泄漏掂恕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一弛槐、第九天 我趴在偏房一處隱蔽的房頂上張望懊亡。 院中可真熱鬧,春花似錦乎串、人聲如沸店枣。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鸯两。三九已至,卻和暖如春长豁,著一層夾襖步出監(jiān)牢的瞬間钧唐,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工蕉斜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逾柿,地道東北人缀棍。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像机错,于是被迫代替她去往敵國(guó)和親爬范。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344