Jenkins配合github實現(xiàn)前端項目自動化構(gòu)建部署

前言

大家以前寫前端項目部署,可能都是手動運行命令,打包完,然后壓縮,再利用FTP、Xshell等這類的工具上傳到服務器解壓。也或者你不會操作,你認為這些事情是運維做的,你只需要打包你的前端項目代碼后發(fā)給運維你就不管了。這種方式確實有點low且效率也不高。

現(xiàn)在大家更關注的是Devops,關注如何來做持續(xù)集成,持續(xù)交付,如何來做CI/CD。

今天就拿Jenkins配合Github實現(xiàn)自動化集成打包部署。

系列文章:

CentOS 7 安裝 JAVA環(huán)境(JDK 1.8)

CentOS 7 安裝Node

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

image

選擇 Personal access tokens -> Generate new token

image

勾選如下配置

image

然后點生成就行了,切記一定要保存好這個token,只顯示一次。

配置Jenkins

進入系統(tǒng)管理 => 管理插件 => 安裝插件 Github Plugin

image

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

image

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

image

添加完畢之后記得選擇我們剛剛添加的信息

最后點擊 Test Connection 如果配置正確應當有如下顯示:

image

創(chuàng)建任務

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

image

勾選 Github Project 填入github倉庫url

image

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

image

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

image

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

image

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

image

總結(jié)

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容