日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

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

來源: 責(zé)編: 時(shí)間:2024-06-28 17:16:06 163觀看
導(dǎo)讀一、Jenkins 前端部署思路1.1 整體架構(gòu)圖圖片1.2 部署步驟圖片二、Pipeline和自由風(fēng)格對比Jenkins是一個(gè)開源的自動(dòng)化服務(wù)器,它可以幫助自動(dòng)化各種任務(wù),包括構(gòu)建、測試和部署軟件。上次我們講解了如何通過 Jenkins 的自

一、Jenkins 前端部署思路

1.1 整體架構(gòu)圖

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

1.2 部署步驟

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

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

Jenkins是一個(gè)開源的自動(dòng)化服務(wù)器,它可以幫助自動(dòng)化各種任務(wù),包括構(gòu)建、測試和部署軟件。UWv28資訊網(wǎng)——每日最新資訊28at.com

上次我們講解了如何通過 Jenkins 的自由風(fēng)格的軟件項(xiàng)目來配置前端的自動(dòng)化部署,如下圖所示,如何選擇自由風(fēng)格的軟件項(xiàng)目。優(yōu)點(diǎn)就是簡單!UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

這次我們將講解如何通過流水線(Pipeline)方式來部署前端項(xiàng)目。優(yōu)點(diǎn)就是更加靈活!如下圖所示,就是選擇 Pipeline 方式。UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

在Jenkins中,有兩種主要類型的任務(wù):Pipeline任務(wù)和自由風(fēng)格項(xiàng)目(Freestyle project)。UWv28資訊網(wǎng)——每日最新資訊28at.com

  1. Pipeline任務(wù):

Pipeline任務(wù)是Jenkins 2.0引入的一個(gè)新特性,它使用Jenkinsfile來定義整個(gè)構(gòu)建流程。UWv28資訊網(wǎng)——每日最新資訊28at.com

Jenkinsfile是一個(gè)文本文件,使用Groovy語言的DSL(領(lǐng)域特定語言),可以定義構(gòu)建的各個(gè)階段和步驟。UWv28資訊網(wǎng)——每日最新資訊28at.com

Pipeline任務(wù)支持復(fù)雜的構(gòu)建流程,包括多個(gè)階段和步驟,以及并行執(zhí)行等高級功能。UWv28資訊網(wǎng)——每日最新資訊28at.com

Pipeline任務(wù)可以很容易地與源代碼管理系統(tǒng)集成,支持持續(xù)集成(CI)和持續(xù)交付(CD)。UWv28資訊網(wǎng)——每日最新資訊28at.com

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

自由風(fēng)格項(xiàng)目是Jenkins早期版本中的主要任務(wù)類型,允許用戶通過Jenkins的Web界面配置構(gòu)建步驟。UWv28資訊網(wǎng)——每日最新資訊28at.com

這種類型的項(xiàng)目沒有固定的構(gòu)建流程定義方式,用戶可以手動(dòng)添加構(gòu)建步驟、配置插件和參數(shù)等。UWv28資訊網(wǎng)——每日最新資訊28at.com

自由風(fēng)格項(xiàng)目適合快速設(shè)置簡單的構(gòu)建任務(wù),但對于復(fù)雜的構(gòu)建流程,可能不如Pipeline任務(wù)靈活和強(qiáng)大。UWv28資訊網(wǎng)——每日最新資訊28at.com

兩者的主要區(qū)別包括:UWv28資訊網(wǎng)——每日最新資訊28at.com

定義方式:Pipeline任務(wù)通過Jenkinsfile定義,而自由風(fēng)格項(xiàng)目通過Jenkins的Web界面配置。UWv28資訊網(wǎng)——每日最新資訊28at.com

靈活性和擴(kuò)展性:Pipeline任務(wù)更加靈活,支持復(fù)雜的構(gòu)建流程和高級功能,如并行執(zhí)行和模板化。UWv28資訊網(wǎng)——每日最新資訊28at.com

集成度:Pipeline任務(wù)更容易與源代碼管理系統(tǒng)集成,實(shí)現(xiàn)自動(dòng)化的CI/CD流程。UWv28資訊網(wǎng)——每日最新資訊28at.com

學(xué)習(xí)和使用難度:Pipeline任務(wù)可能需要用戶學(xué)習(xí)Jenkinsfile的語法和DSL,而自由風(fēng)格項(xiàng)目則更直觀,易于上手。UWv28資訊網(wǎng)——每日最新資訊28at.com

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

三、Pipeline 核心腳本

3.1 獲取 Git 代碼分支

3.1.1 Git 分支插件

用了一個(gè)插件 gitParameter,可以獲取 git 倉庫的分支,部署的時(shí)候,可以選擇分支。如下圖所示,Git 倉庫有 develop 和 master 分支,默認(rèn)選中 develop 分支。UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

3.1.2 Git 環(huán)境變量

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

3.1.3 獲取 Git 分支代碼

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

這個(gè)步驟中有一一行關(guān)鍵的代碼,可以通過 Git 插件獲取選擇的 Git 分支。UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

3.2 拷貝依賴包

因?yàn)?node_modules 不會(huì)上傳到 git 倉庫,所以我們需要提前準(zhǔn)備好。UWv28資訊網(wǎng)——每日最新資訊28at.com

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

當(dāng)執(zhí)行部署的時(shí)候,會(huì)從 passjava 目錄將 node_modules 壓縮包拷貝并解壓到 jenkins 的當(dāng)前工作目錄。UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

3.3 編譯代碼

編譯前端代碼可以用 npm run build xx 命令,然后將編譯后的 dist 目錄壓縮。UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

3.4 備份代碼

將 web 服務(wù)器上多個(gè)前端項(xiàng)目移動(dòng)到備份目錄 web-bak 。UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

3.5 上傳代碼

將編譯后的代碼包上傳到 web 服務(wù)器。UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

3.6 更新代碼

將 dist 壓縮包解壓,然后將多個(gè)前端工程拷貝到 web 目錄。如 passjavabase, passjava-channel, project-contract 目錄拷貝到 passjava-web-micro 目錄。UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

3.7 清理代碼

清理 web 服務(wù)器上備份的代碼。UWv28資訊網(wǎng)——每日最新資訊28at.com

以下命令是查找并刪除指定路徑下超過7天未修改的目錄。UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

這條命令會(huì)找到 /nfs-data/passjava/web-bak/ 目錄下所有超過7天未修改的子目錄,并將其打印出來,然后刪除這些目錄。UWv28資訊網(wǎng)——每日最新資訊28at.com

  1. 查找超過7天未修改的目錄:

-mindepth 1:確保查找從指定目錄的子目錄開始,不包括指定的根目錄。UWv28資訊網(wǎng)——每日最新資訊28at.com

-maxdepth 1:限制查找僅在指定目錄的第一層子目錄中進(jìn)行。UWv28資訊網(wǎng)——每日最新資訊28at.com

-type d:只考慮目錄,不包括文件。“-type -f” 只考慮文件,不包括目錄。UWv28資訊網(wǎng)——每日最新資訊28at.com

-mtime +7:篩選出修改時(shí)間超過7天的目錄。UWv28資訊網(wǎng)——每日最新資訊28at.com

-print:打印出這些目錄的路徑。UWv28資訊網(wǎng)——每日最新資訊28at.com

  1. 刪除找到的目錄:

-exec rm -rf {} +:對找到的每個(gè)目錄執(zhí)行 rm -rf 命令,遞歸且強(qiáng)制刪除該目錄及其內(nèi)容。UWv28資訊網(wǎng)——每日最新資訊28at.com

該步驟的完整代碼如下:UWv28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片UWv28資訊網(wǎng)——每日最新資訊28at.com

3.8 郵件通知

詳見筆者之前寫的一篇:持續(xù)集成:Jenkins Pipeline 郵件通知UWv28資訊網(wǎng)——每日最新資訊28at.com

四、總結(jié)

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

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

本文鏈接:http://www.www897cc.com/showinfo-26-97298-0.html圖解 Jenkins Pipeline 的前端自動(dòng)化部署,用上后真香!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 一個(gè)詭異的Json反序列化問題

下一篇: C#編程中的屬性與字段:何時(shí)使用以及為什么

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 建宁县| 云安县| 大名县| 上饶县| 化州市| 都江堰市| 新竹市| 黔江区| 芦溪县| 合作市| 广饶县| 刚察县| 海林市| 清新县| 寻乌县| 千阳县| 黄浦区| 巨野县| 扶绥县| 江达县| 厦门市| 漯河市| 阳东县| 彭州市| 渝中区| 崇信县| 巴林左旗| 鄂尔多斯市| 浮山县| 开封县| 青冈县| 收藏| 湟中县| 黄梅县| 泗洪县| 康保县| 犍为县| 铅山县| 湛江市| 清河县| 海南省|