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

當前位置:首頁 > 科技  > 軟件

圖解 Jenkins Pipeline 的前端自動化部署,用上后真香!

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

一、Jenkins 前端部署思路

1.1 整體架構圖

圖片圖片7cL28資訊網——每日最新資訊28at.com

1.2 部署步驟

圖片圖片7cL28資訊網——每日最新資訊28at.com

二、Pipeline和自由風格對比

Jenkins是一個開源的自動化服務器,它可以幫助自動化各種任務,包括構建、測試和部署軟件。7cL28資訊網——每日最新資訊28at.com

上次我們講解了如何通過 Jenkins 的自由風格的軟件項目來配置前端的自動化部署,如下圖所示,如何選擇自由風格的軟件項目。優點就是簡單!7cL28資訊網——每日最新資訊28at.com

圖片圖片7cL28資訊網——每日最新資訊28at.com

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

圖片圖片7cL28資訊網——每日最新資訊28at.com

在Jenkins中,有兩種主要類型的任務:Pipeline任務和自由風格項目(Freestyle project)。7cL28資訊網——每日最新資訊28at.com

  1. Pipeline任務:

Pipeline任務是Jenkins 2.0引入的一個新特性,它使用Jenkinsfile來定義整個構建流程。7cL28資訊網——每日最新資訊28at.com

Jenkinsfile是一個文本文件,使用Groovy語言的DSL(領域特定語言),可以定義構建的各個階段和步驟。7cL28資訊網——每日最新資訊28at.com

Pipeline任務支持復雜的構建流程,包括多個階段和步驟,以及并行執行等高級功能。7cL28資訊網——每日最新資訊28at.com

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

  1. 自由風格項目:

自由風格項目是Jenkins早期版本中的主要任務類型,允許用戶通過Jenkins的Web界面配置構建步驟。7cL28資訊網——每日最新資訊28at.com

這種類型的項目沒有固定的構建流程定義方式,用戶可以手動添加構建步驟、配置插件和參數等。7cL28資訊網——每日最新資訊28at.com

自由風格項目適合快速設置簡單的構建任務,但對于復雜的構建流程,可能不如Pipeline任務靈活和強大。7cL28資訊網——每日最新資訊28at.com

兩者的主要區別包括:7cL28資訊網——每日最新資訊28at.com

定義方式:Pipeline任務通過Jenkinsfile定義,而自由風格項目通過Jenkins的Web界面配置。7cL28資訊網——每日最新資訊28at.com

靈活性和擴展性:Pipeline任務更加靈活,支持復雜的構建流程和高級功能,如并行執行和模板化。7cL28資訊網——每日最新資訊28at.com

集成度:Pipeline任務更容易與源代碼管理系統集成,實現自動化的CI/CD流程。7cL28資訊網——每日最新資訊28at.com

學習和使用難度:Pipeline任務可能需要用戶學習Jenkinsfile的語法和DSL,而自由風格項目則更直觀,易于上手。7cL28資訊網——每日最新資訊28at.com

提示:Pipeline 任務代表了Jenkins的未來方向,提供了更高級的自動化構建能力,而自由風格項目則適合快速設置簡單的構建任務。隨著Jenkins的發展,越來越多的用戶和組織傾向于使用Pipeline任務來實現更高效的自動化流程。7cL28資訊網——每日最新資訊28at.com

三、Pipeline 核心腳本

3.1 獲取 Git 代碼分支

3.1.1 Git 分支插件

用了一個插件 gitParameter,可以獲取 git 倉庫的分支,部署的時候,可以選擇分支。如下圖所示,Git 倉庫有 develop 和 master 分支,默認選中 develop 分支。7cL28資訊網——每日最新資訊28at.com

圖片圖片7cL28資訊網——每日最新資訊28at.com

圖片圖片7cL28資訊網——每日最新資訊28at.com

3.1.2 Git 環境變量

圖片圖片7cL28資訊網——每日最新資訊28at.com

3.1.3 獲取 Git 分支代碼

圖片圖片7cL28資訊網——每日最新資訊28at.com

這個步驟中有一一行關鍵的代碼,可以通過 Git 插件獲取選擇的 Git 分支。7cL28資訊網——每日最新資訊28at.com

圖片圖片7cL28資訊網——每日最新資訊28at.com

3.2 拷貝依賴包

因為 node_modules 不會上傳到 git 倉庫,所以我們需要提前準備好。7cL28資訊網——每日最新資訊28at.com

而我們項目我是先在有網的 Linux 服務器上用 npm install 命令下載的依賴包,然后手動壓縮拷貝到 jenkins 服務器的 passjava 目錄。7cL28資訊網——每日最新資訊28at.com

當執行部署的時候,會從 passjava 目錄將 node_modules 壓縮包拷貝并解壓到 jenkins 的當前工作目錄。7cL28資訊網——每日最新資訊28at.com

圖片圖片7cL28資訊網——每日最新資訊28at.com

3.3 編譯代碼

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

圖片圖片7cL28資訊網——每日最新資訊28at.com

3.4 備份代碼

將 web 服務器上多個前端項目移動到備份目錄 web-bak 。7cL28資訊網——每日最新資訊28at.com

圖片圖片7cL28資訊網——每日最新資訊28at.com

3.5 上傳代碼

將編譯后的代碼包上傳到 web 服務器。7cL28資訊網——每日最新資訊28at.com

圖片圖片7cL28資訊網——每日最新資訊28at.com

3.6 更新代碼

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

圖片圖片7cL28資訊網——每日最新資訊28at.com

3.7 清理代碼

清理 web 服務器上備份的代碼。7cL28資訊網——每日最新資訊28at.com

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

圖片圖片7cL28資訊網——每日最新資訊28at.com

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

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

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

-maxdepth 1:限制查找僅在指定目錄的第一層子目錄中進行。7cL28資訊網——每日最新資訊28at.com

-type d:只考慮目錄,不包括文件。“-type -f” 只考慮文件,不包括目錄。7cL28資訊網——每日最新資訊28at.com

-mtime +7:篩選出修改時間超過7天的目錄。7cL28資訊網——每日最新資訊28at.com

-print:打印出這些目錄的路徑。7cL28資訊網——每日最新資訊28at.com

  1. 刪除找到的目錄:

-exec rm -rf {} +:對找到的每個目錄執行 rm -rf 命令,遞歸且強制刪除該目錄及其內容。7cL28資訊網——每日最新資訊28at.com

該步驟的完整代碼如下:7cL28資訊網——每日最新資訊28at.com

圖片圖片7cL28資訊網——每日最新資訊28at.com

3.8 郵件通知

詳見筆者之前寫的一篇:持續集成:Jenkins Pipeline 郵件通知7cL28資訊網——每日最新資訊28at.com

四、總結

通過使用 Jenkins Pipeline 進行前端自動化部署,團隊可以更加高效地管理和部署前端應用程序,減少人為錯誤和手動操作帶來的風險,提升整體的開發和部署效率。7cL28資訊網——每日最新資訊28at.com

本文通過圖解+代碼的方式講解了前端自動化部署的步驟,文中的腳本針對前端的三個模塊進行打包,比較耗時,所以后續可以優化的地方是支持選擇部署前端的不同模塊。7cL28資訊網——每日最新資訊28at.com

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

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 一個詭異的Json反序列化問題

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

標簽:
  • 熱門焦點
  • 中興AX5400Pro+上手體驗:再升級 雙2.5G網口+USB 3.0這次全都有

    2021年11月的時候,中興先后發布了兩款路由器產品,中興AX5400和中興AX5400 Pro,從產品命名上就不難看出這是隸屬于同一系列的,但在外觀設計上這兩款產品可以說是完全沒一點關系
  • 三言兩語說透設計模式的藝術-簡單工廠模式

    一、寫在前面工廠模式是最常見的一種創建型設計模式,通常說的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡單工廠模式又稱為靜態工廠方法模式,不屬于GoF 23種設計
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • SpringBoot中使用Cache提升接口性能詳解

    環境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務支持一樣,抽象緩存允許一致地使用各
  • 企業采用CRM系統的11個好處

    客戶關系管理(CRM)軟件可以為企業提供很多的好處,從客戶保留到提高生產力。  CRM軟件用于企業收集客戶互動,以改善客戶體驗和滿意度。  CRM軟件市場規模如今超過580
  • 得物寵物生意「狂飆」,發力“它經濟”

    作者|花花小萌主近日,得物宣布正式上線寵物鑒別,通過得物App內的“在線鑒別”,可找到鑒別寵物的選項。通過上傳自家寵物的部位細節,就能收獲擁有專業資質認證的得物鑒
  • 騰訊蓋樓,字節拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之“想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗嗎?一起上晶核,即刻暴打!”曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯網企業調整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • OPPO K11搭載長壽版100W超級閃充:26分鐘充滿100%

    據此前官方宣布,OPPO將于7月25日也就是今天下午14:30舉辦新品發布會,屆時全新的OPPO K11將正式與大家見面,將主打旗艦影像,和同檔位競品相比,其最大的賣
Top 主站蜘蛛池模板: 荣昌县| 秦皇岛市| 彰化县| 义乌市| 桂林市| 高尔夫| 永和县| 胶州市| 凤山市| 中西区| 姜堰市| 射阳县| 浪卡子县| 康平县| 屯昌县| 苗栗市| 雷州市| 阿瓦提县| 民县| 天长市| 永善县| 从化市| 岳普湖县| 道真| 万荣县| 湖北省| 彭州市| 桑植县| 鹰潭市| 呼和浩特市| 西贡区| 祁阳县| 宝应县| 米林县| 洪泽县| 托里县| 安徽省| 清远市| 东乡| 望奎县| 阜新|