前言
大家以前寫前端項目部署,可能都是手動運行命令,打包完,然后壓縮,再利用FTP、Xshell等這類的工具上傳到服務器解壓。也或者你不會操作,你認為這些事情是運維做的,你只需要打包你的前端項目代碼后發(fā)給運維你就不管了。這種方式確實有點low且效率也不高。
現(xiàn)在大家更關注的是Devops,關注如何來做持續(xù)集成,持續(xù)交付,如何來做CI/CD。
今天就拿Jenkins配合Github實現(xiàn)自動化集成打包部署。
系列文章:
CentOS 7 安裝 JAVA環(huán)境(JDK 1.8)
Jenkins的安裝這里就不在說明了,網(wǎng)上安裝教程很多。
Jenkins介紹
引用百度百科的一句話:Jenkins是一個開源軟件項目,是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。
在工作中部署jenkins的最大好處就是每次在開發(fā)、測試環(huán)境代碼,都無須運維部署,而是相關的開發(fā)人員,測試人員登錄jenkins構(gòu)建需要部署的tag或者分支即可,整個部署過程無須運維參與,解放運維勞動力。
也不用擔心部署在多個服務器,在家寫代碼也不用遠程公司部署項目,提交代碼后會自動為你部署。
部署方式
jenkins的構(gòu)建方式常用分為三種。
jenkins觸發(fā)式構(gòu)建:push代碼或者合并代碼到項目的master或者其他分支,jenkins就部署代碼到對應服務器。
jenkins參數(shù)化構(gòu)建:push代碼或者合并代碼到項目的master或者其他分支之后,并不會部署代碼,而是需要登錄到jenkins的web界面,點擊構(gòu)建按鈕,傳入對應的參數(shù)(比如參數(shù)需要構(gòu)建的tag,需要部署的分支)然后才會部署。
jenkins定時構(gòu)建:多用于APP、自動化用例等自動打包,定時構(gòu)建是在參數(shù)化構(gòu)建的基礎上添加的,開發(fā)人員可以登錄jenkins手動傳入tag進行打包,如果不手動打包,那么jenkins就定時從配置項目地址拉取最新的代碼打包。
Jenkins + github持續(xù)集成
創(chuàng)建 github AccessToken
進入github 設置頁,選擇Developer settings

選擇 Personal access tokens -> Generate new token

勾選如下配置

然后點生成就行了,切記一定要保存好這個token,只顯示一次。
配置Jenkins
進入系統(tǒng)管理 => 管理插件 => 安裝插件 Github Plugin

然后進入 系統(tǒng)管理 => 系統(tǒng)設置 => Github Server 添加信息

Credentials 那里再點擊 Add 添加如下信息

添加完畢之后記得選擇我們剛剛添加的信息
最后點擊 Test Connection 如果配置正確應當有如下顯示:

創(chuàng)建任務
創(chuàng)建一個自由風格的任務

勾選 Github Project 填入github倉庫url

源碼管理選擇Git ,填寫倉庫git地址,選擇需要構(gòu)建的分支,我這里選擇master (** 為選擇所有分支)

構(gòu)建觸發(fā)器,這里你們可以根據(jù)上面所說的部署方式來選擇,這里我選擇 GitHub hook trigger for GITScm polling ,來完成 push 后自動構(gòu)建

然后就是構(gòu)建 => 增加構(gòu)建步驟 => 執(zhí)行shell 填入你自己的構(gòu)建和部署的命令 我這里拿我的hexo博客舉例

現(xiàn)在如果提交代碼到對應的分支,就會自動觸發(fā)構(gòu)建,如果構(gòu)建成功,也就自動部署在你的網(wǎng)站上了。其實這里就是咱們配置生效了,github監(jiān)聽到咱們push后,利用webhook通知Jenkins:大爺來玩呀,Jenkins就會根據(jù)咱們的配置自動完成構(gòu)建部署。

總結(jié)
配置看似很繁瑣,其實很簡單,配置過一次,再配置第二次就是手到擒來,其他項目也是如此,如 vue +webpack類的,只是構(gòu)建的shell命令不一樣而已。還有,切記 rm -rf慎用慎用!233... o(╥﹏╥)o