jenkins + fastlane的簡(jiǎn)單自動(dòng)化打包

????????上一篇簡(jiǎn)單講了fastlane的自動(dòng)打包骄呼,這個(gè)需要手動(dòng)執(zhí)行命令打包惰拱,還不算智能,現(xiàn)在講解用jenkins智能自動(dòng)打包凛虽,我這里講解的jenkins可以認(rèn)為是一個(gè)操作者死遭,還有其他很多功能,這就不一一講解凯旋。

一呀潭、jenkins的安裝和啟動(dòng)

? ? ? ? 網(wǎng)上搜索的安裝有很多種,這里只講解通過brew安裝的至非。

? ? ? ? 1. jenkins安裝包安裝方式:

????????剛開始我是通過安裝包jenkins.war安裝運(yùn)行的钠署,這里個(gè)人感覺也沒那么好,前提需要安裝jdk8的荒椭,我電腦的是jdk10的谐鼎,所有不適合,然后我就去安裝jdk8(下載需要登錄賬戶)趣惠,這過程遇到許多坑狸棍,總是換路徑不成功,導(dǎo)致無法使用jdk8.

? ? ? ? 下載安裝完jdk8之后就是要配置環(huán)境味悄,安裝的路徑在?/Library/Java/JavaVirtualMachines 下草戈。

? ? ? ? 1. 終端輸入cd ~ 命令

? ? ? ? 2. 終端輸入?sudo su 命令授權(quán)

? ? ? ? 3. 終端輸入vi ?.bash_profile?命令編輯配置環(huán)境,沒有自動(dòng)創(chuàng)建一個(gè).bash_profile文件傍菇。

????????JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-8.0.2.jdk/Contents/Home

????????CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

????????PATH=$PATH:$JAVA_HOME/bin

????????export JAVA_HOME

????????export PATH

? ? ? ? 把上面的配置復(fù)制粘貼猾瘸,然后把jdk-8.0.2.jdk更改為jdk8的路徑保存關(guān)閉,

? ? ? ? 4. 終端輸入?source .bash_profile 命令使配置生效丢习,然后輸入 java -version 命令牵触,如圖則說明配置已經(jīng)生效

? ? ? ? jdk8安裝完成之后,通過 java -jar jenkins.war 命令安裝并啟動(dòng)運(yùn)行jenkins咐低,這個(gè)關(guān)閉終端就關(guān)閉jenkins了揽思,好像不能后臺(tái)運(yùn)行和開機(jī)自動(dòng)啟動(dòng)(我這邊沒找到方法),所以我不推薦這種方式安裝運(yùn)行见擦,后面我改成通過brew安裝的呀邢。

? ? ? ? 2. brew安裝方式:

? ? ? ? 通過brew安裝也需要jdk8以后的曙蒸,但不清楚是不是規(guī)定jdk8的书劝,我這里更改為jdk8的沒有改回jdk10的列粪,所以沒有嘗試(后面嘗試了不需要規(guī)定jdk8的)。通過brew安裝前提當(dāng)然是要安裝brew了酒来,沒有安裝brew的要先安裝brew卢未,這里不詳說。

? ? ? ? ?1.安裝brew?

? ??????????????ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

? ? ? ? 2.安裝jenkins

? ??????????????brew install jenkins

? ? ? ? 3.啟動(dòng)jenkins

????????????????jenkins和brew services start jenkins,jenkins啟動(dòng)是在前臺(tái)啟動(dòng)關(guān)閉終端jenkins就關(guān)閉了辽社,?brew services start jenkins是在后臺(tái)啟動(dòng)伟墙。

? ? ? ? ? ? ? ? 關(guān)聯(lián)文件,開機(jī)自動(dòng)啟動(dòng)?ln?-sfv?/usr/local/opt/jenkins/*.plist~/Library/LaunchAgents

二、jenkins的訪問

????????通過瀏覽器訪問http://localhost:8080/滴铅,在沒改過配置ip的情況下可以可以直接訪問http://127.0.0.1:8080/? 戳葵,通過ip訪問的需要關(guān)閉防火墻。 ? ? ? ? ? ?

? ? ? ? 如果需要其他人能訪問的話(局域網(wǎng)汉匙,外網(wǎng)的話需要部署在服務(wù)器)拱烁,就需要配置一下ip,ip要更改成你當(dāng)前電腦的ip地址盹兢,然后被人訪問就直接訪問你的電腦ip邻梆,假如你的電腦ip是192.168.8.8守伸,那么訪問地址為http://192.168.8.8:8080/绎秒。

? ? ? ? 更改路徑~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist和/usr/local/Cellar/jenkins/2.178/homebrew.mxcl.jenkins.plist的ip,如圖:

三尼摹、注冊(cè)jenkins和安裝推薦插件

? ? ? ? 1.根據(jù)提示輸入Administrator password執(zhí)行下一步见芹;

? ? ? ? 2.安裝推薦的插件;

? ? ? ? 3.注冊(cè)賬戶蠢涝。

四玄呛、新建Item

? ? ? ? ? ? ? ? 這里不需要安裝更多的插件了,這里利用fastlane自動(dòng)打包和二,所以不需要安裝什么證書徘铝、描述文件和xcode的插件。

? ? ? ? 1.新建任務(wù)

? ? ? ? ? ? ? ? 輸入任務(wù)名稱惯吕,選擇自由風(fēng)格惕它,點(diǎn)擊確認(rèn)下一步

????????2.填寫任務(wù)信息

? ? ? ? ? ? ? ? 基本信息general,如圖我選擇丟棄舊構(gòu)建废登,填寫你需要的保留天數(shù)和保持的最大構(gòu)建個(gè)數(shù)淹魄。

? ? ? ? 3.源碼管理

? ? ? ? ? ? ? ? 我這里用的是git,svn可以選擇第三個(gè)堡距,操作都是一樣的甲锡。如圖,這里要填寫你的遠(yuǎn)程庫(kù)url羽戒,和你的git賬號(hào)信息缤沦,如果你用的是https的話,需要輸入git賬號(hào)和密碼易稠,用ssh的話需要配置ssh私鑰缸废。填寫你代碼對(duì)應(yīng)的分支,我這邊用的是4.2.0的分支缩多,一般用的是master和developer呆奕。

? ? ? ? ? ? ? ? ? ? 我這里添加憑證選擇的是ssh的养晋,你可以自己選擇。我這里說一下添加ssh的公鑰梁钾,

? ? ? ? 1. 前往?~/.ssh 可以看到本機(jī)是否已經(jīng)生成過绳泉,有的話可以直接用,也可以生成新的姆泻;

? ? ? ? 2.?ssh-keygen -t rsa -C "youremail@example.com" 生成秘鑰零酪;不需要更名稱和不需要密碼的話直接敲回車就行了。

? ? ? ? 生成成功之后(如果還不清楚可以網(wǎng)上搜一下ssh 生成密鑰)拇勃,前往?~/.ssh 四苇,里面存放著三個(gè)文件id_rsa(私鑰)、id_rsa.pub(公鑰)方咆、known_hosts月腋,

? ? ? ? 3.?將id_rsa.pub(公鑰)配置到git,將id_rsa(私鑰)配置當(dāng)前的jenkins界面瓣赂。

? ? ? ? 4. 把專有密鑰添加到 ssh-agent 中:ssh-add ~./ssh/id_dsa (這個(gè)必須榆骚,要不然jenkins獲取不到git代碼)

? ? ? ? 4.構(gòu)建觸發(fā)器

? ? ? ? ? ? ? ? 如圖,我用的是定時(shí)每隔30分鐘查看遠(yuǎn)程的分支有沒有代碼更新的煌集,有的話直接拉取代碼更新妓肢,再構(gòu)建。其他更多功能自行搜索查看苫纤,這里不作詳情說明碉钠。

? ? ? ? 5.構(gòu)建

? ? ? ? ? ? ? ? 這里選擇shell,這里用fastlane命令執(zhí)行打包卷拘,命令如圖:

? ? ? ? ? ? ? ? ? ?這樣應(yīng)用保存就完全了喊废,這里不需要選擇構(gòu)建環(huán)境,這里用的是fastlane執(zhí)行打包恭金。還有構(gòu)建后操作也沒用到操禀,這里構(gòu)建完之后可以執(zhí)行其他事情,比如郵件通知等横腿。? ? ? ? ? ? ? ??

? ? ? ? 如果執(zhí)行不成功可以查看打印的錯(cuò)誤信息颓屑,更改之后再執(zhí)行看看,其他比較簡(jiǎn)單耿焊,這樣每當(dāng)有人提交代碼揪惦,就會(huì)自動(dòng)打包了,不需要手動(dòng)配置打包上傳ipa罗侯。


錯(cuò)誤解析:

? ??1.出現(xiàn) fastlane: command not found 怎么辦器腋?

????????解決方法一:這個(gè)情況一般是由于 jenkins 沒有設(shè)置正確的 $PATH 環(huán)境變量導(dǎo)致的。正確設(shè)置的方法為:

? ? ? ? ? ?在命令行下執(zhí)行?echo $PATH,記錄下輸出的結(jié)果

? ? ? ? ? ?在 jenkins 中系統(tǒng)管理-系統(tǒng)設(shè)置中纫塌,找到?環(huán)境變量(Environment variables)

????????????在 key 中填寫?PATH诊县,在 value 中填寫第一步中輸出的結(jié)果

????????????保存即可。


? ?2. 我剛弄好的時(shí)候措左,可以用一兩天依痊,不知道為什么最近jenkins發(fā)瘋了,最近jenkins老是打包出錯(cuò)怎披,提示Build step 'Execute shell' marked build as failure胸嘁,如圖:

? ? ? ? 按照提示設(shè)置環(huán)境還是不行,網(wǎng)上又搜索不出來凉逛,在一篇文章中無意看到解決的方法性宏。在fastlane文件夾中添加fastlane.sh腳本文件,添加如下內(nèi)容:

? ??????#解決ArgumentError - invalid byte sequence in US-ASCII錯(cuò)誤

? ??????#修改終端語(yǔ)言状飞、地區(qū)等國(guó)際化環(huán)境變量

? ??????export?LANG=en_US.UTF-8

? ??????export?LANGUAGE=en_US.UTF-8

? ??????export?LC_ALL=en_US.UTF-8

? ??????export?PATH=$PATH:/usr/local/bin

? ??????# fastlane profile

? ??????bundle exec fastlane APP

保存之后毫胜,在jenkins腳本修改腳本內(nèi)容

?? ? ? ?cd ?你的項(xiàng)目目錄

????????sh ./fastlane/fastlane.sh

這樣就是先執(zhí)行fastlane.sh文件就可改環(huán)境變量了,然后fastlane.sh文件里接著執(zhí)行fastlane命令


一切都弄好之后昔瞧,又發(fā)現(xiàn)一個(gè)問題指蚁,每次打包發(fā)包都不知道每次更新了什么內(nèi)容,然后又想著自動(dòng)獲取提交的記錄自晰,上傳蒲公英時(shí)自動(dòng)填寫git提交的記錄。

jenkins添加Add Changelog Information to Environment

這里的步驟有點(diǎn)多稍坯,簡(jiǎn)單點(diǎn)說:

? ? ? ? 1.?安裝 Maven

? ??????????????Maven下載地址:https://maven.apache.org/download.cgi

? ? ? ? 下載解壓之后酬荞,把它放在/Users/XXX/下,如圖:

? ??????????添加 Maven 相關(guān)環(huán)境

? ??????????????export M2_HOME=/Users/saj-king/apache-maven-3.6.1

? ? ? ? ? ? ? ? ?export PATH=$PATH:$M2_HOME/bin

? ? ? ? ? ? 終端輸入: ?vi ~/.bash_profile ?把上面的內(nèi)容添加在底部

? ? ? ? ? ? 然后保存退出瞧哟,輸入:?source?~/.bash_profile 來讓 Maven 生效

? ??????????輸入 mvn -v 來檢查 Maven 是否生效混巧。

? ? ? ? 下載插件的源碼地址是:https://github.com/daniel-beck/changelog-environment-plugin

解壓之后,在終端cd到?changelog-environment-plugin-master 下勤揩,執(zhí)行??mvn verify咧党。

success之后會(huì)在changelog-environment-plugin-master/target/下有個(gè)changelog-environment.hpi文件,這就是需要的插件陨亡。把它上傳到j(luò)enkins上傍衡。

在項(xiàng)目的配置中,構(gòu)建環(huán)境下面多了一項(xiàng) ?Add Changelog Information to Environment

選中后负蠕,多了三項(xiàng):Entry Format蛙埂、File Item Format、Date Format

Entry Format中添加%3$s (at %4$s by %1$s)遮糖,%3$s為ChangeLog內(nèi)容绣的,%4$s為時(shí)間,%1$s為提交人。

Date Format中添加?yyyy-MM-dd HH:mm:ss 時(shí)間格式屡江。

在命令行中使用SCM_CHANGELOG獲取芭概,在其他插件或者腳本用不了,只能在Excute shell 獲取惩嘉,

所以無奈之后又要添加一個(gè)Excute shell 腳本執(zhí)行谈山,把上傳蒲公英的命令放在一起,在fastlane里的上傳蒲公英的命令就不要了宏怔。

????????IPAPATH="/Users/my-king/Desktop/APP/MyAPP.ipa"

????????curl -F "file=@${IPAPATH}" -F "uKey=xxx" -F "_api_key=xxx" -F "updateDescription=${SCM_CHANGELOG}" https://qiniu-storage.pgyer.com/apiv1/app/upload

IPAPATH是存放打包出來的ipa路徑奏路,uKey和_api_key需要填寫自己的蒲公英信息

這樣就可以上傳提交信息。


排版不好臊诊,請(qǐng)不要介意8敕邸!抓艳!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末触机,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子玷或,更是在濱河造成了極大的恐慌儡首,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偏友,死亡現(xiàn)場(chǎng)離奇詭異蔬胯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)位他,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門氛濒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鹅髓,你說我怎么就攤上這事舞竿。” “怎么了窿冯?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵骗奖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我醒串,道長(zhǎng)执桌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任厦凤,我火速辦了婚禮鼻吮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘较鼓。我一直安慰自己椎木,他們只是感情好违柏,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著香椎,像睡著了一般漱竖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上畜伐,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天馍惹,我揣著相機(jī)與錄音,去河邊找鬼玛界。 笑死万矾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慎框。 我是一名探鬼主播良狈,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼笨枯!你這毒婦竟也來了薪丁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤馅精,失蹤者是張志新(化名)和其女友劉穎严嗜,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洲敢,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漫玄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沦疾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片称近。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖哮塞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情凳谦,我是刑警寧澤忆畅,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站尸执,受9級(jí)特大地震影響家凯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜如失,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一绊诲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧褪贵,春花似錦掂之、人聲如沸抗俄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)动雹。三九已至,卻和暖如春跟压,著一層夾襖步出監(jiān)牢的瞬間胰蝠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工震蒋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茸塞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓查剖,卻偏偏與公主長(zhǎng)得像钾虐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子梗搅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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