Ubuntu上Jenkins自動化部署Gitee上VUE項目

文章目錄

    • 1.安裝NodeJS插件
    • 2.配置全局工具配置-NodeJS環境變量
    • 3.新建自由風格的軟件項目任務
    • 4.配置General
      • 配置丟棄舊的構建
      • 配置參數化構建過程
    • 5.配置源碼管理
    • 6.構建觸發器
    • 7.設置構建環境
    • 8.配置構建步驟
    • 9.配置構建后操作
    • 10測試構建

前文鏈接: Ubuntu上Jenkins自動化部署Gitee上SpringBoot項目

相關Jenkins和服務器環境都已配置完成。

1.安裝NodeJS插件

Dashboard -> 系統管理 -> 插件管理 -> 可選插件,搜索nodejs,安裝即可。

安裝完成后重啟Jenkins(空閑時)

2.配置全局工具配置-NodeJS環境變量

Dashboard -> 系統管理 -> 全局工具配置(Global tool configuration),添加NodeJS。

如果服務器已經安裝了NodeJS,可以配置路徑,否則可以選自動安裝

也可以添加多個node版本,后面選擇其中一個使用。

保存就OK!這樣我們在新建任務,配置項目構建環境時就可以選擇這里配置的nodejs。

# 注意 服務器和Jenkins上是隔離的
# 這里服務器上沒安node,我們選擇自動安裝。
# 服務器上執行時報錯的
# node -v
bash: node: command not found
#這里執行是對的
# /root/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS21/bin/node -v
v21.6.2

3.新建自由風格的軟件項目任務

Dashboard -> 新建任務

  • 輸入任務名稱
  • 選擇構建一個自由風格的軟件項目
  • 點擊確認按鈕

4.配置General

描述:就是注釋,給我們這個job一個更便于其他查看的詳解

Throttle builds:節流構建,通過設置時間段內允許并發的次數來實現構建的控制

  • Number of builds:構建的次數
  • Time period:設置指定的時間段,單位可以是年、月、日、周、時、分、秒

在必要時進行并發構建:滿足策略要求時就會進行并發構建

安靜期:設置一個時間來間隔每次構建的間隔

重試次數:這個和系統設置的一樣,拉取源碼重試的次數

該項目的上游項目正在構建時阻止該項目構建與該項目的下游項目正在構建時阻止該項目構建:用于上下游項目有關聯的構建策略

使用自定義的工作空間:使該項目獨立于系統的工作空間

配置丟棄舊的構建

設置構建歷史的保存策略

  • log Rotation:日志循環,只有一個默認值選項 Log Rotation,無須修改;
  • 保持構建的天數:根據你所填寫的天數來保存構建記錄;
  • 保持構建的最大個數:有幾條構建記錄保存;
  • 發布包保留天數
  • 發布包最大保留個構建

配置參數化構建過程

參數化構建,可以單擊添加參數,在每次構建之前需要用戶給參數賦值,根據不用的參數值執行不同的處理流程。

以一個示例場景為例,考慮到每次構建可能不需要運行npm install,我們可以通過參數化配置來判斷是否在構建時執行這個依賴安裝命令。

添加一個布爾值參數INSTALL_DEPENDENCIES.

5.配置源碼管理

  • 倉庫 URL:https://gitee.com/lakernote/easy-admin.git。
  • 憑證:用于訪問Git倉庫的用戶名密碼、ssh 密鑰、token 等憑證。
  • Branches to build:指定分支。

6.構建觸發器

構建觸發器用來設置觸發項目構建的時間或者事件。

這里也可以什么都不選,然后手動在Jenkins點擊按鈕觸發。

觸發遠程構建

勾選此復選框之后,Jenkins 會提供一個特定的 URL 用來觸發項目的自動構建。為了安全起見,可以看到在 URL 之后還會要求有一個用于授權的 Token 字段。這樣就可以使用 wget 或 curl 這樣的工具觸發構建。

其它項目構建完成后構建

用來設置在某個項目構建完成后才能觸發本項目的構建。而且可以對其它項目的具體構建結果進行設定,比如,穩定的(成功),不穩定的,失敗的。比如我們需要在 war 包發布成功后,再進行測試腳本的執行,這種場景下就可以配置此項。

定時構建

img

這是一種類似于 crontab 命令的功能,可以指定在某個或某些具體時間自動進行項目的執行。包含 5 個字段,這些字段以空格或者 Tab 鍵分割,用來指定多久去執行一次構建。格式為:

  1. MINUTES:一小時內的分鐘,取值范圍(0-59)
  2. HOURS:一天內的小時,取值范圍(0-23)
  3. DAYMONTH :一個月中的某一天,取值范圍(1-31)
  4. MONTH :月份,取值范圍(1-12)
  5. DAYWEEK:一周中的星期幾,取值范圍(0-7)。0 和 7 都表示星期日
# every fifteen minutes (perhaps at :07, :22, :37, :52).
H/15 * * * *# every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24).
H(0-29)/10 * * * *# once every two hours at 45 minutes past the hour starting at 9:45 AM and finishing at 3:45 PM every weekday.
45 9-16/2 * * 1-5# once in every two hours slot between 9 AM and 5 PM every weekday (perhaps at 10:38 AM, 12:38 PM, 2:38 PM, 4:38 PM).
H H(9-16)/2 * * 1-5# once a day on the 1st and 15th of every month except December.
H H 1,15 1-11 *

輪詢 SCM

img

就是定期到指定的代碼倉庫查詢是否有變化,如果有變化就執行。語法同 cron 是一樣的。

與周期性構建的區別就是,讓 Jenkins 在指定的時間去檢查代碼倉庫是否有變化,有變化了才運行項目,而不是直接到點了就運行項目。

注意:最下面一行有一個復選框,忽略 post-commit 鉤子,就是告訴 Jenkins 要忽略來自鉤子的信號,目的就是為了防止重復觸發操作。

7.設置構建環境

  • Delete workspace before build starts 會在構建之前清空工作空間。
  • Use secret text(s) or file(s) 使用加密文件或者文本。

8.配置構建步驟

選擇執行shell

注意腳本中的一些相對目錄問題。

# 在腳本中的執行結果如下
# 命令:echo $PATH
11:29:22 echo $PATH
11:29:22 /usr/lib/jvm/java-11-openjdk-amd64/bin:/root/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS21/bin:/usr/lib/jvm/java-11-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
# 命令: pwd
11:29:23 + pwd
11:29:23 /root/.jenkins/workspace/laker-vue

Shell內容

# 進入Jenkins工作空間下vue項目目錄
cd ./laker-admin# 根據 INSTALL_DEPENDENCIES 參數的值判斷是否需要安裝依賴包
if [ "$INSTALL_DEPENDENCIES" = true ]; thenecho "下載依賴包"npm config set registry https://registry.npmmirror.com  # 設置npm鏡像源npm config list  # 打印npm配置列表npm install  # 安裝依賴包
fiecho "刪除dist目錄"
rm -rf ./dist/*  # 刪除dist目錄下的所有文件npm run build:prod  # 執行生產環境構建命令echo "清空目標目錄"
rm -rf /laker/admin-client/*  # 刪除目標目錄下的所有文件# 確保目標目錄存在
mkdir -p /laker/admin-client/dist# 將構建生成的文件復制到目標目錄
cp -rf ./dist/* /laker/admin-client/dist

9.配置構建后操作

一些常見的構建后操作包括:

  • 郵件通知: 發送構建結果通知給指定的郵件地址。
  • 部署到服務器: 將構建產物部署到指定的服務器。
  • 觸發其他任務: 在當前任務構建完成后觸發其他Jenkins任務。
  • 生成報告: 生成測試報告、代碼覆蓋率報告等。

點擊保存按鈕。

10測試構建

1.點擊使用參數構建

2.在Console Output 菜單可以查看構建日志。

12:36:59   Images and other types of assets omitted.
12:36:59 
12:36:59  DONE  Build complete. The dist directory is ready to be deployed.
12:36:59  INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
12:36:59       
12:37:00 + echo 清空目標目錄
12:37:00 清空目標目錄
12:37:00 + rm -rf /laker/admin-client/*
12:37:00 + mkdir -p /laker/admin-client/dist
12:37:00 + cp -rf ./dist/favicon.ico ./dist/index.html ./dist/static ./dist/tinymce4.7.5 /laker/admin-client/dist
12:37:00 Finished: SUCCESS

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718072.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718072.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718072.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java常用應用程序編程接口(API)——Instant,DateTimeFormatter,Period,Duration概述

前言: 整理下學習心得。打好基礎,daydayup! Instant Instant是時間線上的某個時刻/時間戳,通過獲取Instant的對象可以拿到此刻的時間,該時間由兩部分組成:1,從1970年1月1日00:00:00開始走到此刻…

前端開發 VSCode 插件推薦

1、Chinese (Simplified) (簡體中文) Language Pack for Visual Studio Code VS Code 的中文(簡體)語言包,此中文(簡體)語言包為 VS Code 提供本地化界面。 下載地址:Chinese (Simplified) (簡體中文) La…

D*算法超詳解 (D星算法 / Dynamic A*算法/ Dstar算法)(死循環解決--跟其他資料不一樣奧)

所需先驗知識(沒有先驗知識可能會有大礙,了解的話會對D*的理解有幫助):A*算法/ Dijkstra算法 何為D*算法 Dijkstra算法是無啟發的尋找圖中兩節點的最短連接路徑的算法,A*算法則是在Dijkstra算法的基礎上加入了啟發函數…

[JavaWeb玩耍日記]HTML+CSS+JS快速使用

目錄 一.標簽 二.指定css 三.css選擇器 四.超鏈接 五.視頻與排版 六.布局測試 七.布局居中 八.表格 九.表單 十.表單項 十一.JS引入與輸出 十二.JS變量,循環,函數 十三.Array與字符串方法 十四.自定義對象與JSON 十五.BOM對象 十六.獲取…

Network LSA 結構簡述

Network LSA主要用于描述一個區域內的網絡拓撲結構,包括網絡中的路由器和連接到這些路由器的網絡。它記錄了每個路由器的鄰居關系、連接狀態以及連接的度量值(如帶寬、延遲等),以便計算最短路徑和構建路由表。display ospf lsdb n…

網關kong記錄接口處理請求和響應插件 tcp-log-with-body的安裝

tcp-log-with-body 介紹 Kong的tcp-log-with-body插件是一個高效的工具,它能夠轉發Kong處理的請求和響應。這個插件非常適用于需要詳細記錄API請求和響應信息的情景,尤其是在調試和排查問題時。 軟件環境說明 kong version 2.1.4 - 2.8.3 [可用親測]C…

二、數據結構——單鏈表,雙鏈表,棧,隊列,單調棧,單調隊列,KMP,Trie,并查集,堆,哈希表等內容。

對于鏈表來說,由于new操作時間太長,因此,算法題中一般使用靜態鏈表。 1.單鏈表 采用數組實現單鏈表,可以直接開兩個數據,一個數組存放數值,另外一個數據存放下一個元素(指針)。 示…

JavaScript“基本語法”筆記(自學第一天)!

一、JavaScript的用途和應用領域 JavaScript的應用領域非常廣泛,主要包括以下幾個方面: 網頁交互性: JavaScript最初是為了增強網頁的交互性而開發的,它可以控制網頁的行為、樣式和內容,使用戶能夠與網頁進行實時交互&#xff0c…

一個教材上的CMS網站源碼在Linux服務器上登錄時驗證碼正常,但在windows下不能正常顯示

一個教材上的CMS網站源碼在Linux服務器上登錄時驗證碼正常,但在windows下不能正常顯示。 在linux服務器上能正常顯示。顯示界面如下所示:

蜻蜓FM語音下載(mediadown)

一、介紹 蜻蜓FM語音下載(mediadown),能夠幫助你下載蜻蜓FM音頻節目。如果你是蜻蜓FM會員,它還能幫你下載會員節目。 二、下載地址 本站下載:蜻蜓FM語音下載(mediadown) 百度網盤下載&#…

Web 應用防火墻(WAF):功能、應用場景和未來發展方向

Web 應用防火墻(WAF)是一種用于保護 Web 應用程序免受各種網絡攻擊的安全工具。WAF 可以檢測并阻止對 Web 應用程序的惡意攻擊,如SQL 注入、跨站腳本(XSS)和跨站請求偽造(CSRF)等。它通過檢查 H…

【Redis 主從復制】

文章目錄 1 :peach:環境配置:peach:1.1 :apple:三種配置方式:apple:1.2 :apple:驗證:apple:1.3 :apple:斷開復制和切主:apple:1.4 :apple:安全性:apple:1.5 :apple:只讀:apple:1.6 :apple:傳輸延遲:apple: 2 :peach:拓撲結構:peach:2.1 :apple:?主?從結構:apple:2.2 :apple:?…

【MetaGPT】配置教程

MetaGPT配置教程(使用智譜AI的GLM-4) 文章目錄 MetaGPT配置教程(使用智譜AI的GLM-4)零、為什么要學MetaGPT一、配置環境二、克隆代碼倉庫三、設置智譜AI配置四、 示例demo(狼羊對決)五、參考鏈接 零、為什么…

大數據技術(一)

大數據技術概述 大數據技術層面及其功能 數據采集與預處理 利用ETL(extract-transform-load)工具將分布的、異構數據源中的數據,如關系數據、平面數據文件等,抽取到臨時中間層后進行清洗、轉換、集成,最后加載到數據倉庫或數據集市中&…

C語言什么是循環嵌套?

一、問題 分?結構是可以進?嵌套的,循環結構同樣也?持嵌套,那什么是循環嵌套呢? 二、解答 ?個循環體內?包含另?個完整的循環結構,就稱之為循環嵌套。內嵌的循環中還可以嵌套循環,這就是多層循環,也叫…

類與對象詳解 C++ (1)

1.struct和class 與C語言不同的是,C中struct和class可以定義成員變量和成員函數。更偏好用class。 2.類的定義 格式如下: class 為 定義類的 關鍵字, ClassName 為類的名字, {} 中為類的主體,注意 類定義結束時后面…

前端canvas項目實戰——簡歷制作網站(五):右側屬性欄(字體、字號、行間距)

目錄 前言一、效果展示二、實現步驟1. 優化代碼,提取常量2. 實現3個編輯模塊3. 實現updateFontProperty方法4. 一個常見的用法:僅更新當前選中文字的樣式 三、Show u the code后記 前言 上一篇博文中,我們擴充了線條對象(fabric.…

springboot 整合oauth2

1、EnableOAuth2Client:客戶端,提供OAuth2RestTemplate,用于客戶端訪問資源服務。 簡要步驟:客戶端訪問資源->客戶端發現沒有資源訪問token->客戶端根據授權類型生成跳轉url->瀏覽器 302 到認證授權服務進行認證、授權。…

Dockerfile構建過程詳解

Dockerfile介紹 docker是用來構建docker鏡像的文件!命令參數腳本! 構建步驟: 1、編寫一個dockerfile文件 2、docker build構建成為一個鏡像 3、docker run 運行鏡像 …

PDF轉Excel的未來:人工智能技術如何提升轉換效率和準確性

隨著信息技術的快速發展,PDF和Excel作為兩種重要的文件格式,在日常生活和工作中扮演著至關重要的角色。PDF以其獨特的跨平臺閱讀特性,成為了文件分享和傳輸的首選格式;而Excel則以其強大的數據處理能力,成為了數據分析…