從零搭建項(xiàng)目(13) --- 部署: 使用jenkins自動(dòng)化部署

我的博客地址

正式地址
測(cè)試地址
前端源碼
后端源碼

文章目錄

  1. 項(xiàng)目及其技術(shù)棧介紹
  2. 前端: 項(xiàng)目初始化
  3. 前端: 使用Sass和Antd
  4. 前端: 開發(fā)體驗(yàn)優(yōu)化
  5. 前端: 搭建路由和狀態(tài)管理
  6. 前端: 支持Axios
  7. 前端: 打包與環(huán)境變量設(shè)置
  8. 前端: 團(tuán)隊(duì)代碼規(guī)范
  9. 后端: 項(xiàng)目初始化和使用Koa相關(guān)
  10. 后端: 使用TypeORM和MySQL
  11. 部署: 使用nginx部署前端項(xiàng)目
  12. 部署: 后端部署
  13. 部署: 使用jenkins自動(dòng)化部署

前言

這篇文章將是從零搭建博客系列的最后一篇递递,將會(huì)介紹jenkins的安裝以及配合github webhook進(jìn)行前后端項(xiàng)目的自動(dòng)化部署,主要內(nèi)容如下:

  1. 安裝jenkins
  2. 配置jenkins和github webhook

安裝jenkins

安裝jenkins之前鼠锈,首先看看他的配置需求:


image.png

基本上騰訊云的學(xué)生機(jī)都可以跑起來。

  • 安裝openjdk-8-jdk
    jenkins依賴于java的openjdk齿兔,所以安裝之前先安裝openjdk-8-jdk仆救。
    首先輸入sudo add-apt-repository ppa:openjdk-r/ppa將倉(cāng)庫(kù)添加進(jìn)來云矫,這里需要注意的是膳沽,執(zhí)行這個(gè)命令的時(shí)候會(huì)提示需要按一下回車。
    之后sudo apt update更新源让禀。
    最后輸入echo y|sudo apt-get install openjdk-8-jdk挑社,稍等片刻安裝完畢后。
    輸入java -version查看版本巡揍,如果有下面的輸出痛阻,則表明安裝完畢:

    image.png

  • 安裝jenkins
    安裝完openjdk-8-jdk之后,直接復(fù)制運(yùn)行下面的代碼下載并安裝jenkins腮敌,這個(gè)安裝的時(shí)間可能會(huì)比較長(zhǎng):

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
echo y|sudo apt-get install jenkins

安裝完畢后他會(huì)自動(dòng)退出進(jìn)程:

image.png

之后輸入sudo service jenkins start開啟jenkins阱当,jenkins相關(guān)命令如下:
sudo service jenkins start|stop|restart
然后我們?cè)跒g覽器中輸入服務(wù)器ip:8080,jenkins默認(rèn)監(jiān)聽8080端口糜工,稍等一會(huì)后會(huì)進(jìn)入到該頁(yè)面:
image.png

注意: jenkins有可能因?yàn)榉阑饓ε懿黄饋矶氛猓@時(shí)候可以輸入sudo ufw allow 8080開放指定的端口,騰訊云的防火墻默認(rèn)是關(guān)閉的啤斗,所以不存在這個(gè)問題。

  • jenkins初始化配置
    根據(jù)提示需要輸入一個(gè)密碼赁咙,這個(gè)密碼所在的文本就是上圖中提示的路徑钮莲,我們將它拷貝出來并輸入進(jìn)去點(diǎn)擊繼續(xù):


    image.png

    之后點(diǎn)擊安裝推薦插件即可免钻,之后繼續(xù)等待,如果很多插件安裝失敗崔拥,請(qǐng)點(diǎn)擊重試:


    image.png

    完成后我們創(chuàng)建一個(gè)管理員賬號(hào):
    image.png

    保存完成后就可以進(jìn)入到j(luò)enkins操作界面了极舔,該階段即算完成。
    image.png

配置jenkins和github webhook

這一節(jié)介紹如何將github與jenkins連接起來链瓦,介紹只以前端項(xiàng)目為例拆魏,因?yàn)榍昂蠖伺渲檬且粯拥摹?/p>

  • 生成github personal access token
    我們進(jìn)入到github中,點(diǎn)擊頭像慈俯,選擇setting:

    image.png

    然后點(diǎn)擊Developer Setting:
    image.png

    之后點(diǎn)擊personal access token:
    image.png

    點(diǎn)擊生成token按鈕:
    image.png

    之后按照下面的截圖填寫名字渤刃,勾選repoadmin:repo_hook選項(xiàng),然后點(diǎn)擊生成:
    image.png

    接下來會(huì)生成一個(gè)token贴膘,這個(gè)token務(wù)必用軟件記下來卖子,因?yàn)楹竺嬖倩貋碚沂钦也坏降牧?/strong>:
    image.png

  • 新建webhook
    上述完成后我們?nèi)サ揭渴鸬捻?xiàng)目中,比如我的就是test項(xiàng)目:


    image.png

    點(diǎn)擊setting -> webhooks:


    image.png

    點(diǎn)擊add webhook刑峡,然后按照下圖填寫信息洋闽,然后點(diǎn)擊添加:
    image.png
  • 設(shè)置jenkins
    之后我們來到j(luò)enkins頁(yè)面,點(diǎn)擊添加新項(xiàng)目:


    image.png

填寫完名字后突梦,選擇創(chuàng)建一個(gè)自由風(fēng)格項(xiàng)目诫舅,然后確定:


image.png

接著去到j(luò)enkins自己的系統(tǒng)管理界面:


image.png

image.png

在github項(xiàng)點(diǎn)擊添加github服務(wù)器:


image.png

image.png

然后輸入名稱,點(diǎn)擊添加按鈕添加jenkins憑證:


image.png

之后再?gòu)棾隹蛑刑顚懭缦鹿迹簏c(diǎn)擊確定:


image.png

然后在下拉框中選擇你剛才填寫的描述項(xiàng)刊懈,并勾上管理hook按鈕:


image.png

點(diǎn)擊連接測(cè)試,出現(xiàn)如下即為成功撮奏,點(diǎn)擊底下的保存后退出:


image.png

我們回到剛才新建的項(xiàng)目中俏讹,點(diǎn)進(jìn)去配置頁(yè)面:


image.png

image.png

第一項(xiàng)General勾選github項(xiàng)目,并將項(xiàng)目地址填進(jìn)去:

image.png

第二項(xiàng)源碼管理:


image.png

如果上面的Credentials沒有選項(xiàng)畜吊,點(diǎn)擊添加按鈕選擇jenkins泽疆,在彈出框中填寫如下圖,添加完畢后在點(diǎn)下拉框應(yīng)該就要選項(xiàng)了:


image.png

第三項(xiàng)構(gòu)建觸發(fā)器選項(xiàng):


image.png

第四項(xiàng)構(gòu)建環(huán)建中選擇該項(xiàng):


image.png

之后下面會(huì)出現(xiàn)一個(gè)綁定項(xiàng)玲献,點(diǎn)擊新增殉疼,選擇secret text:


image.png

然后選擇之前填寫的標(biāo)識(shí):
image.png

第五項(xiàng)構(gòu)建選擇執(zhí)行shell,這個(gè)shell是在你的項(xiàng)目上傳到github捌年,github通知給jenkins之后執(zhí)行的腳本:


image.png

比如下面一個(gè)簡(jiǎn)單的shell腳本:
安裝依賴 -> build出靜態(tài)文件 -> 將靜態(tài)文件移到目標(biāo)目錄:


image.png

編輯完成后點(diǎn)擊保存按鈕瓢娜。

驗(yàn)證成果

之后我們?cè)谇岸酥刑砑右恍凶郑缓髉ush到github上:


image.png

再來到j(luò)enkins中查看礼预,你會(huì)發(fā)現(xiàn)項(xiàng)目開始自動(dòng)部署了:


image.png

你可以點(diǎn)擊進(jìn)度條查看部署進(jìn)度:
image.png

等待部署完成后眠砾,刷新頁(yè)面,最新的效果就出來了:


image.png

后端部署的方式和前端類似托酸,在這里就不做贅述了褒颈,大家也可以自己實(shí)踐一下柒巫。

后記

從零搭建項(xiàng)目系列到這里就結(jié)束了,本打算再通過一篇文章寫寫把前端資源弄到cdn上去谷丸,但迫于目前已經(jīng)沒有已備案域名堡掏,所以這一步只能往后延,等以后有心思了再補(bǔ)上刨疼。
也希望大家能夠提出意見幫助我調(diào)整文章內(nèi)容泉唁,使其更易懂,幫到更多的人揩慕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末亭畜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子漩绵,更是在濱河造成了極大的恐慌贱案,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件止吐,死亡現(xiàn)場(chǎng)離奇詭異宝踪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)碍扔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門瘩燥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人不同,你說我怎么就攤上這事厉膀。” “怎么了二拐?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵服鹅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我百新,道長(zhǎng)企软,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任饭望,我火速辦了婚禮仗哨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘铅辞。我一直安慰自己厌漂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布斟珊。 她就那樣靜靜地躺著苇倡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雏节,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天胜嗓,我揣著相機(jī)與錄音,去河邊找鬼钩乍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛怔锌,可吹牛的內(nèi)容都是我干的寥粹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼埃元,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼涝涤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起岛杀,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤阔拳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后类嗤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體糊肠,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年遗锣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了货裹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡精偿,死狀恐怖弧圆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情笔咽,我是刑警寧澤搔预,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站叶组,受9級(jí)特大地震影響拯田,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扶叉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一勿锅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧枣氧,春花似錦溢十、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春吞鸭,著一層夾襖步出監(jiān)牢的瞬間寺董,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工刻剥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留遮咖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓造虏,卻偏偏與公主長(zhǎng)得像御吞,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子漓藕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355