Github配合Jenkins,實現(xiàn)vue等前端項目的自動構(gòu)建與發(fā)布

本篇文章前端項目以vue為例(其實前端工程化項目的操作方法都相同)荧关,部署在Linux系統(tǒng)上(centos)溉奕。
之前做前端項目的部署,一直都是手動運行打包命令忍啤,打包完加勤。再使用FTPXshell等這類的工具上傳到服務(wù)器同波。這種方式不僅效率不高鳄梅,而且容易出錯,一不小心就放錯地方了参萄∥乐Γ或者公司有運維,只需要打包前端項目代碼后發(fā)給運維就不管了讹挎,但是一般的小公司是沒有運維的校赤。所以呢,就在找有沒有什么工具可以自動幫我完成這些操作筒溃,于是就找到了下面這貨马篮,名字叫做Jenkins。隨著用的越來越多怜奖,越來越順心浑测,這小老頭也是越看越順眼了!M崃帷迁央!

Jenkins.jpg
這篇文章的主要目的,就是實現(xiàn)往github push代碼或者合并代碼到項目的master或者其他分支滥崩,jenkins就自動部署代碼到對應(yīng)服務(wù)器岖圈。

一、Jenkins的安裝與配置

Jenkins是一個開源軟件項目钙皮,是基于Java開發(fā)的一種持續(xù)集成工具蜂科,用于監(jiān)控持續(xù)重復(fù)的工作顽决,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能导匣。(摘自百度百科)

1. java環(huán)境的搭建

因為它是依賴于Java環(huán)境的才菠,所以必須先安裝java環(huán)境,否則啟動Jenkins服務(wù)的時候會報錯哦贡定。
執(zhí)行以下命令安裝JDK赋访,一步到位。建議安裝版本1.8以上的

yum install java-1.8.0-openjdk

2. 安裝Jenkins

我一般習(xí)慣使用yum安裝軟件厕氨。由于yumrepo中默認(rèn)沒有Jenkins进每,所以需要先將Jenkins庫添加到yum repos中,依次執(zhí)行下面的命令:

cd /etc/yum.repos.d/
wget http://pkg.jenkins.io/redhat/jenkins.repo
rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
yum install -y jenkins

賦予Jenkins在網(wǎng)站根目錄的讀寫權(quán)限命斧,我這邊網(wǎng)站的根目錄為/usr/share/nginx/hxkj

chown -R jenkins.jenkins /usr/share/nginx/hxkj

啟動Jenkins

service jenkins start

因為jenkins默認(rèn)使用8080端口田晚,如果使用的是云服務(wù)器,還需要在安全組中開放8080端口(如果不想使用8080端口国葬,或者端口被占用了贤徒,可以在Jenkins的配置文件里修改默認(rèn)端口)

3. Jenkins的初始化使用

3.1、在瀏覽器輸入http://服務(wù)器IP:8080 打開jenkins汇四,首次打開需要獲取管理員的密碼接奈,如圖:
unlock.jpg

可以根據(jù)頁面提示在服務(wù)器中找到該密碼,輸入如下命令:(cat命令后面的路徑為頁面上顯示的標(biāo)紅文字通孽,每個人的可能不一樣)

cat /var/lib/jenkins/secrets/initalAdminPassword
3.2序宦、安裝默認(rèn)插件:輸入密碼,提交完成之后會跳轉(zhuǎn)到插件安裝頁面背苦,選擇第一個然后進行安裝互捌,如圖:
plugin.jpg

這一步,啥都不用做行剂,慢慢等吧秕噪。。厚宰。


installing.jpg

接下來默認(rèn)插件安裝完成之后腌巾,創(chuàng)建一個管理員賬戶,完成配置后铲觉,就可以登錄 Jenkins

create.png

3.3澈蝙、安裝 NodeJs插件,用于vue項目打包構(gòu)建撵幽。

打開系統(tǒng)管理 => 管理插件 搜索 NodeJs然后勾選安裝
打開系統(tǒng)管理 => 全局工具配置 拉到底部 配置 node 版本碉克,如圖:

node.jpg

4. 配置自動部署任務(wù)

4.1、新建任務(wù):點擊新建任務(wù) => 輸入任務(wù)名稱并齐,選擇構(gòu)建一個自由風(fēng)格的軟件項目然后確定
create_task.jpg
4.2漏麦、配置git,進入任務(wù)配置况褪,選擇源碼管理 撕贞,因為我的項目是開源的,所以無需填寫賬號密碼
git.jpg
4.3测垛、設(shè)置構(gòu)建環(huán)境捏膨,選擇 Provide Node & npm bin/ folder to PATH 然后選擇之前安裝插件時候配置的node版本
build_env.jpg
4.4、配置項目自動化打包食侮,選擇 增加構(gòu)建步驟 => Excute shell 這個是運行相關(guān)的sh命令(這一步建議耗時操作分離步驟)

所有命令

cd /var/lib/jenkins/workspace/hxkj #進入Jenkins工作空間下hxkj項目目錄
node -v #檢測node版本(此條命令非必要)
npm -v #檢測npm版本(此條命令非必要)
npm config set registry https://registry.npm.taobao.org #把npm源設(shè)置為淘寶源(這個你懂的)
npm config get registry #檢測npm是否切換成功(此條命令非必要)
npm install #安裝項目中的依賴
npm run build #打包
cd dist
rm -rf hxkj.tar.gz #刪除上次打包生成的壓縮文件(一般建議備份号涯,不要直接刪除,這邊測試就無所謂啦)
tar -zcvf hxkj.tar.gz * #把生成的項目打包成壓縮包锯七,方便移動到項目部署目錄
cd /usr/share/nginx/hxkj #進入web項目根目錄
mv /var/lib/jenkins/workspace/hxkj/dist/hxkj.tar.gz ./  #移動剛剛打包好的項目到web項目根目錄
tar -zxvf hxkj.tar.gz -C dist/  #解壓項目到dist目錄
rm -rf hxkj.tar.gz    #刪除壓縮包

步驟分離之后链快,如下圖


shell_command.jpg
4.5、保存后點擊立即構(gòu)建查看任務(wù)是否能夠成功構(gòu)建眉尸,控制臺輸出 菜單可以查看構(gòu)建日志域蜗。
log.jpg

到現(xiàn)在為止,Jenkins構(gòu)建已經(jīng)配置完畢噪猾,接下來就是配合github來完成騷操作了霉祸!

二、GitHub+Jenkins聯(lián)動配置

1. 創(chuàng)建 github AccessToken

進入 github 設(shè)置頁袱蜡,選擇Developer settings

dev_setting.jpg

選擇 Personal access tokens => Generate new Generate

token.jpg

勾選如下配置丝蹭,然后點擊Generate Generate,一定要保存好這個token哦坪蚁,它只顯示一次奔穿。

check.jpg

2. Jenkins添加github插件

打開系統(tǒng)管理 => 管理插件 搜索 Github Plugin然后勾選安裝

filter.jpg

git_plugin.jpg

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

憑據(jù) 那里再點擊 添加 添加如下信息

add_secret.jpg

添加完畢之后記得選擇我們剛剛添加的憑據(jù)信息

最后點擊 連接測試 如果如下顯示,說明配置是正確的

con_test.jpg

三迅细、Git push測試

Git的push操作巫橄,這邊就不演示了

當(dāng)完成push操作之后,回到Jenkins管理頁面茵典,就會看到在構(gòu)建隊列中湘换,新增了一條記錄。

success.jpg

而且统阿,查看構(gòu)建日志彩倚,也提示成功!7銎健帆离!
build_success.png

At last,看完之后有什么不懂的结澄,可以留言反饋哥谷。

轉(zhuǎn)載請注明出處:http://www.reibang.com/p/4c4f92209dd1
作者:TSY
個人空間:https://hxkj.vip

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末岸夯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子们妥,更是在濱河造成了極大的恐慌猜扮,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件监婶,死亡現(xiàn)場離奇詭異旅赢,居然都是意外死亡,警方通過查閱死者的電腦和手機惑惶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門煮盼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人带污,你說我怎么就攤上這事僵控。” “怎么了刮刑?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵喉祭,是天一觀的道長。 經(jīng)常有香客問我雷绢,道長泛烙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任翘紊,我火速辦了婚禮蔽氨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘帆疟。我一直安慰自己鹉究,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布踪宠。 她就那樣靜靜地躺著自赔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柳琢。 梳的紋絲不亂的頭發(fā)上绍妨,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音柬脸,去河邊找鬼他去。 笑死,一個胖子當(dāng)著我的面吹牛倒堕,可吹牛的內(nèi)容都是我干的灾测。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼垦巴,長吁一口氣:“原來是場噩夢啊……” “哼媳搪!你這毒婦竟也來了铭段?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蛾号,失蹤者是張志新(化名)和其女友劉穎稠项,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲜结,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年活逆,在試婚紗的時候發(fā)現(xiàn)自己被綠了精刷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蔗候,死狀恐怖怒允,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锈遥,我是刑警寧澤纫事,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站所灸,受9級特大地震影響丽惶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜爬立,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一钾唬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侠驯,春花似錦抡秆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至檩坚,卻和暖如春着撩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背效床。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工睹酌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剩檀。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓憋沿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沪猴。 傳聞我的和親對象是個殘疾皇子辐啄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359