偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

圖解 Jenkins Pipeline 的前端自動(dòng)化部署,用上后真香!

開(kāi)發(fā) 前端
本文通過(guò)圖解+代碼的方式講解了前端自動(dòng)化部署的步驟,文中的腳本針對(duì)前端的三個(gè)模塊進(jìn)行打包,比較耗時(shí),所以后續(xù)可以優(yōu)化的地方是支持選擇部署前端的不同模塊。

一、Jenkins 前端部署思路

1.1 整體架構(gòu)圖

圖片圖片

1.2 部署步驟

圖片圖片

二、Pipeline和自由風(fēng)格對(duì)比

Jenkins是一個(gè)開(kāi)源的自動(dòng)化服務(wù)器,它可以幫助自動(dòng)化各種任務(wù),包括構(gòu)建、測(cè)試和部署軟件。

上次我們講解了如何通過(guò) Jenkins 的自由風(fēng)格的軟件項(xiàng)目來(lái)配置前端的自動(dòng)化部署,如下圖所示,如何選擇自由風(fēng)格的軟件項(xiàng)目。優(yōu)點(diǎn)就是簡(jiǎn)單!

圖片圖片

這次我們將講解如何通過(guò)流水線(Pipeline)方式來(lái)部署前端項(xiàng)目。優(yōu)點(diǎn)就是更加靈活!如下圖所示,就是選擇 Pipeline 方式。

圖片圖片

在Jenkins中,有兩種主要類型的任務(wù):Pipeline任務(wù)和自由風(fēng)格項(xiàng)目(Freestyle project)。

  1. Pipeline任務(wù):

Pipeline任務(wù)是Jenkins 2.0引入的一個(gè)新特性,它使用Jenkinsfile來(lái)定義整個(gè)構(gòu)建流程。

Jenkinsfile是一個(gè)文本文件,使用Groovy語(yǔ)言的DSL(領(lǐng)域特定語(yǔ)言),可以定義構(gòu)建的各個(gè)階段和步驟。

Pipeline任務(wù)支持復(fù)雜的構(gòu)建流程,包括多個(gè)階段和步驟,以及并行執(zhí)行等高級(jí)功能。

Pipeline任務(wù)可以很容易地與源代碼管理系統(tǒng)集成,支持持續(xù)集成(CI)和持續(xù)交付(CD)。

  1. 自由風(fēng)格項(xiàng)目:

自由風(fēng)格項(xiàng)目是Jenkins早期版本中的主要任務(wù)類型,允許用戶通過(guò)Jenkins的Web界面配置構(gòu)建步驟。

這種類型的項(xiàng)目沒(méi)有固定的構(gòu)建流程定義方式,用戶可以手動(dòng)添加構(gòu)建步驟、配置插件和參數(shù)等。

自由風(fēng)格項(xiàng)目適合快速設(shè)置簡(jiǎn)單的構(gòu)建任務(wù),但對(duì)于復(fù)雜的構(gòu)建流程,可能不如Pipeline任務(wù)靈活和強(qiáng)大。

兩者的主要區(qū)別包括:

定義方式:Pipeline任務(wù)通過(guò)Jenkinsfile定義,而自由風(fēng)格項(xiàng)目通過(guò)Jenkins的Web界面配置。

靈活性和擴(kuò)展性:Pipeline任務(wù)更加靈活,支持復(fù)雜的構(gòu)建流程和高級(jí)功能,如并行執(zhí)行和模板化。

集成度:Pipeline任務(wù)更容易與源代碼管理系統(tǒng)集成,實(shí)現(xiàn)自動(dòng)化的CI/CD流程。

學(xué)習(xí)和使用難度:Pipeline任務(wù)可能需要用戶學(xué)習(xí)Jenkinsfile的語(yǔ)法和DSL,而自由風(fēng)格項(xiàng)目則更直觀,易于上手。

提示:Pipeline 任務(wù)代表了Jenkins的未來(lái)方向,提供了更高級(jí)的自動(dòng)化構(gòu)建能力,而自由風(fēng)格項(xiàng)目則適合快速設(shè)置簡(jiǎn)單的構(gòu)建任務(wù)。隨著Jenkins的發(fā)展,越來(lái)越多的用戶和組織傾向于使用Pipeline任務(wù)來(lái)實(shí)現(xiàn)更高效的自動(dòng)化流程。

三、Pipeline 核心腳本

3.1 獲取 Git 代碼分支

3.1.1 Git 分支插件

用了一個(gè)插件 gitParameter,可以獲取 git 倉(cāng)庫(kù)的分支,部署的時(shí)候,可以選擇分支。如下圖所示,Git 倉(cāng)庫(kù)有 develop 和 master 分支,默認(rèn)選中 develop 分支。

圖片圖片

圖片圖片

3.1.2 Git 環(huán)境變量

圖片圖片

3.1.3 獲取 Git 分支代碼

圖片圖片

這個(gè)步驟中有一一行關(guān)鍵的代碼,可以通過(guò) Git 插件獲取選擇的 Git 分支。

圖片圖片

3.2 拷貝依賴包

因?yàn)?node_modules 不會(huì)上傳到 git 倉(cāng)庫(kù),所以我們需要提前準(zhǔn)備好。

而我們項(xiàng)目我是先在有網(wǎng)的 Linux 服務(wù)器上用 npm install 命令下載的依賴包,然后手動(dòng)壓縮拷貝到 jenkins 服務(wù)器的 passjava 目錄。

當(dāng)執(zhí)行部署的時(shí)候,會(huì)從 passjava 目錄將 node_modules 壓縮包拷貝并解壓到 jenkins 的當(dāng)前工作目錄。

圖片圖片

3.3 編譯代碼

編譯前端代碼可以用 npm run build xx 命令,然后將編譯后的 dist 目錄壓縮。

圖片圖片

3.4 備份代碼

將 web 服務(wù)器上多個(gè)前端項(xiàng)目移動(dòng)到備份目錄 web-bak 。

圖片圖片

3.5 上傳代碼

將編譯后的代碼包上傳到 web 服務(wù)器。

圖片圖片

3.6 更新代碼

將 dist 壓縮包解壓,然后將多個(gè)前端工程拷貝到 web 目錄。如 passjavabase, passjava-channel, project-contract 目錄拷貝到 passjava-web-micro 目錄。

圖片圖片

3.7 清理代碼

清理 web 服務(wù)器上備份的代碼。

以下命令是查找并刪除指定路徑下超過(guò)7天未修改的目錄。

圖片圖片

這條命令會(huì)找到 /nfs-data/passjava/web-bak/ 目錄下所有超過(guò)7天未修改的子目錄,并將其打印出來(lái),然后刪除這些目錄。

  1. 查找超過(guò)7天未修改的目錄:

-mindepth 1:確保查找從指定目錄的子目錄開(kāi)始,不包括指定的根目錄。

-maxdepth 1:限制查找僅在指定目錄的第一層子目錄中進(jìn)行。

-type d:只考慮目錄,不包括文件?!?type -f” 只考慮文件,不包括目錄。

-mtime +7:篩選出修改時(shí)間超過(guò)7天的目錄。

-print:打印出這些目錄的路徑。

  1. 刪除找到的目錄:

-exec rm -rf {} +:對(duì)找到的每個(gè)目錄執(zhí)行 rm -rf 命令,遞歸且強(qiáng)制刪除該目錄及其內(nèi)容。

該步驟的完整代碼如下:

圖片圖片

3.8 郵件通知

詳見(jiàn)筆者之前寫(xiě)的一篇:持續(xù)集成:Jenkins Pipeline 郵件通知

四、總結(jié)

通過(guò)使用 Jenkins Pipeline 進(jìn)行前端自動(dòng)化部署,團(tuán)隊(duì)可以更加高效地管理和部署前端應(yīng)用程序,減少人為錯(cuò)誤和手動(dòng)操作帶來(lái)的風(fēng)險(xiǎn),提升整體的開(kāi)發(fā)和部署效率。

本文通過(guò)圖解+代碼的方式講解了前端自動(dòng)化部署的步驟,文中的腳本針對(duì)前端的三個(gè)模塊進(jìn)行打包,比較耗時(shí),所以后續(xù)可以優(yōu)化的地方是支持選擇部署前端的不同模塊。

責(zé)任編輯:武曉燕 來(lái)源: 悟空聊架構(gòu)
相關(guān)推薦

2025-02-13 07:58:21

CI/CDJenkinsGitLab

2020-12-08 06:20:49

前端重構(gòu)Vue

2020-10-14 10:30:07

前端Node代碼

2021-05-07 08:03:15

微服務(wù)JenkinsGitHub項(xiàng)目

2013-09-03 09:58:51

Web前端

2022-09-14 10:00:12

前端自動(dòng)化測(cè)試

2015-02-04 09:17:38

亞馬遜AWS云自動(dòng)化

2014-03-11 11:10:10

PowerShell自動(dòng)化腳本

2024-12-16 07:10:00

DockerDrone開(kāi)發(fā)

2018-01-31 14:39:45

Data Pipeli數(shù)據(jù)分析數(shù)據(jù)工作

2021-06-30 19:48:21

前端自動(dòng)化測(cè)試Vue 應(yīng)用

2023-09-14 15:15:36

2024-09-13 15:32:18

2023-04-06 07:09:25

自動(dòng)化部署Actions

2013-11-27 11:34:43

自動(dòng)化部署Python

2022-11-15 17:07:40

開(kāi)發(fā)自動(dòng)化前端

2017-01-06 10:54:03

AndroidiOSJenkins

2024-01-24 18:50:21

WebFTP服務(wù)器

2017-12-17 21:58:18

2022-10-09 11:07:40

物聯(lián)網(wǎng)如自動(dòng)化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)