Jenkins運維之路(初識流水線)

1.初次使用流水線

前面我們用自由風格的流水線進行了項目部署,但是自由風格的流水線只能應付一些簡單且項目規模不是很大的部署。為了讓流水線能夠靈活、通用、邏輯清晰且更加容易維護,現在一般企業都是采取使用了Pipeline的方式來對流水線進行構建,從這里起應該就是我從企業部署流水線的一個歷程,另外近期需要對流水線進行改造,那么我也將改造的過程一并在后面寫入。

創建Pipeline項目

image-20250907145013607

image-20250907145013607

image-20250907145137214

image-20250907145137214

image-20250907145235991

image-20250907145235991

這是一條簡單的流水線示例,兄弟們可以先感受下

pipeline {agent { node { label "node47"}}tools {git 'Git'maven 'maven399'jdk 'jdk1701'}environment {var1  = "var1"var2  = "var2"var3  = "var3"RED = "\u001B[31m"GREEN = "\u001B[32m"   // 綠色PURPLE = "\u001B[35m"  // 紫色RESET = "\u001B[0m"    // 重置}options {// 保留構建次數buildDiscarder(logRotator(numToKeepStr: '5'))// 不允許同時執行流水線disableConcurrentBuilds()// 流水線執行的超時時間timeout(time: 25, unit: 'MINUTES')// 構建時的時間信息timestamps()}parameters {string(name: 'BRANCH_TAG', defaultValue: 'master', description: 'Enter the GF branch to checkout')}stages {stage('Checkout') {steps {script {git (credentialsId: "giteeuptest", url: 'https://gitee.com/wolfan_119/spring-boot-3-hello-world-jdk21.git', branch: "${BRANCH_TAG}")}}}stage('Build') {steps {ansiColor('xterm') { // 啟用 AnsiColorecho "${GREEN}項目開始構建${RESET}"echo "${GREEN}環境變量$var1${RESET}"}echo "Building"}}stage('PullProject') {steps {ansiColor('xterm') { // 啟用 AnsiColorecho "${PURPLE}項目推送${RESET}"echo "${PURPLE}環境變量$var2${RESET}"}sh 'echo PullProject'}}stage('Delpoy') {steps {ansiColor('xterm') { // 啟用 AnsiColorecho "${RED}項目部署${RESET}"echo "${RED}環境變量$var3${RESET}"}sh 'echo Delpoy'}}}post {always {sh "echo 構建后總是執行這個步驟"}success {sh "echo 構建成功了執行這個步驟"}failure{sh "echo 構建失敗了執行這個步驟"}aborted{sh "echo 構建取消了執行這個步驟"}}
}

參數簡介

  • ?pipeline 用于聲明流水線的標識(有聲名式和腳本式2中風格,但是不用糾結這些)
  • ?anget 指定在那個節點執行打包流程 any代表任意節點
  • ?tools 指定打包工具(這里是在jenkins中配置好的,之前在工具初始化有提起過)
  • ?environment 環境變量,用于定義在流水線執行過程中的一些變量信息
  • ?options jenkins自帶的一些配置項
  • ?parameters 參數化構建,定義一些特定的參數
  • ?stages stages是一個容器,用于包含多個stage。它將流水線的不同階段組織在一起,使得整個構建過程更清晰。每個 stage 可以代表流水線中的一個主要步驟或任務。
  • ?stage stage是流水線中的一個單獨的階段,表示構建過程中的一個特定任務或步驟。每個 stage 可以包含一個或多個 steps,并且可以有自己的條件和環境設置。它幫助用戶理解構建的不同部分。
  • ?steps steps是在一個 stage 中定義的具體操作或任務,它包含實際執行的命令或腳本,例如編譯代碼、運行測試、部署應用等。每個 step 可以是一個內置的 Jenkins 步驟或自定義的腳本。
  • ?post 根據流水線的執行結果(成功、失敗、未穩定等)執行不同的操作,

2.執行下流水線

image-20250906233635498

image-20250906233635498

image-20250906233935513

image-20250906233935513

從這里看Pipeline風格流水線從可視化這里要比自由風格的流水線好很多,這些日子對公司的流水線做些改造,剛好可以一并寫進來,不過更新速度可能會慢一些了!最后歡迎大家入群一起討論運維技術,如果看不見群信息可以私聊

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

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

相關文章

【智能協同云圖庫】基于統一接口架構構建多維度分析功能、結合 ECharts 可視化與權限校驗實現用戶 / 管理員圖庫統計、通過 SQL 優化與流式處理提升數據

摘要:本節圍繞提升空間圖庫管理分析能力,先分用戶與管理員兩類梳理資源使用、分類、標簽等 6 大分析需求,再設計統一實現流程與接口方案,最后通過分層開發完成各需求后端功能,覆蓋權限校驗、數據處理與接口編寫。 本節…

HTML第八課:HTML4和HTML5的區別

HTML第八課&#xff1a;HTML4和HTML5的區別html4 與 html 5的區別快速學習平臺html4 與 html 5的區別 示例圖 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> &…

CS336——1. Overview

文章目錄1. CS336介紹2. 概覽2.1 為什么會有這門課程2.1.1 LLM的參數和訓練成本2.2.2 小語言模型和LLM的區別2.2 你可以學到什么&#xff1f;2.2.1 Intuitions2.2.2 The bitter lesson3. 全景圖(current landscape)/發展歷史4. 可執行的課件說明5. 課程設計6. 課程內容6. 1 bas…

ncnn-Android-mediapipe_hand 踩坑部署實錄

目錄 同時有 nanodet 和yolox,可以做到10fps 沒測試:yolox hand ncnn-Android-mediapipe_hand hand 關鍵點21個模型: ncnn版本: 跑通后,手部關鍵點集中在圖像左上角,經過排查,原因是ncnn版本不對。 CMakeLists.txt 同時有 nanodet 和yolox,可以做到10fps 無訓練…

OSPF實驗:外部路由引入

OSPF外部路由引入實驗目的&#xff1a;除了內部通信外&#xff0c;企業還需要與外部網絡進行通信&#xff0c;不同企業網絡之間存在互訪需求。假設A公司網絡部署OSPF協議實現內部通信&#xff0c;因業務發展&#xff0c;需要訪問B公司的一臺WEB服務器。網絡拓撲圖&#xff1a;公…

網絡上那些在線 PDF 轉換工具安全嗎?轉換 PDF 需要注意什么

PDF 格式憑借跨設備兼容、格式穩定的優勢&#xff0c;早已成為個人辦公、企業協作中不可或缺的文件格式。無論是壓縮 PDF 以滿足郵件附件大小限制&#xff0c;還是將 Word 文檔轉成 PDF 確保排版不變&#xff0c;我們總能遇到需要 PDF 工具的場景。也正因如此&#xff0c;網上涌…

生成對抗網絡(GAN)

目錄 1 引言 2 生成對抗網絡的基本原理 2.1 生成器與判別器 2.2 對抗訓練過程 2.3 與傳統生成模型的比較 3 GAN的衍生模型 3.1 架構創新與深度卷積GAN 3.2 損失函數優化與Wasserstein GAN 3.3 條件生成與可控合成 3.4 跨域轉換與CycleGAN 3.5 高分辨率生成與規模化演…

Vue 3.6 Alien Signals:讓響應式性能飛躍式提升

概述 Vue 3.6 引入了革命性的 Alien Signals 技術&#xff0c;這是一種全新的響應式系統&#xff0c;基于細粒度響應式原理&#xff0c;為 Vue 應用帶來了前所未有的性能提升和開發體驗優化。 什么是 Alien Signals&#xff1f; Alien Signals 是 Vue 3.6 內置的輕量級響應式…

React Hooks 報錯?一招解決useState問題

文章目錄問題分析問題 在使用import { useState } from "react";時報錯&#xff1a;Youre importing a component that needs useState. This React Hook only works in a Client Component. To fix, mark the file (or its parent) with the “use client” direct…

數據集成平臺怎么選?從ETL到CDC再到iPaaS的全景對比

前言&#xff1a;一個制造企業的真實困境 近期在為某家制造企業做系統改造時&#xff0c;我們遇到了一個典型的數據集成難題。這家企業運營著獨立的ERP、CRM和MES等30業務系統&#xff0c;看似完備的信息化基礎卻存在嚴重的數據割裂問題。 銷售團隊在CRM中查看的庫存數據總是滯…

驅動開發系列72 - GLSL編譯器實現 - 指令選擇(二)

前面介紹過,在指令選擇時會執行一系列優化過程,本節介紹下“比特級常量傳播優化”的實現。 一:什么是比特級常量傳播優化 舉一個GLSL語言例子: #version 450layout(location = 0) in vec4 inColor; layout(location = 0) out vec4 outColor;void main() {vec4 tmp = inCo…

Redis(緩存)

一 什么是緩存1. 生活上的例子比如有一個行李箱和一個手機&#xff0c;每次把手機放到行李箱在拿出來肯定很麻煩&#xff0c;如果放到褲兜里就會方便很多&#xff0c;所以褲兜算作行李箱的一個緩存&#xff0c;不僅僅是褲兜&#xff0c;甚至可以一直拿在手上等其他有存儲介質的…

openssl簡介

一、openssl是什么 OpenSSL是一個開源的、功能強大的軟件庫和工具包,它實現了傳輸層安全(TLS) 和安全套接層(SSL) 協議以及一個全面的密碼學原語庫。它是用 C 語言編寫的,為其帶來了高性能和跨平臺的特性。 作為庫(Library):開發者可以將其代碼集成到自己的應用程序(…

左值引用與右值引用

左值和右值 左值&#xff08;lvalue&#xff09;&#xff1a;在表達式結束后仍然存在&#xff0c;可以取地址。簡單理解&#xff1a;有名字、有存儲位置。 比如變量、數組元素、對象等。 右值&#xff08;rvalue&#xff09;&#xff1a;臨時值&#xff0c;表達式結束后就消失&…

中小企業SAP B1 HANA部署全解析:成本與云端優勢

目錄 云端部署成本構成與效益分析 軟件許可費 硬件成本 服務費 培訓費 技術優勢 快速部署 彈性擴展 高可用性 云端部署適用場景 IT預算有限的中小企業 分布在不同地區的機構 需要快速上線的情況 本地部署適用場景 數據監管嚴格的行業 擁有完善IT基礎設施企業 …

Django Channels實戰:WebSocket實時通信開發

在當今Web應用開發中&#xff0c;實時通信功能已成為提升用戶體驗的關鍵要素。傳統的HTTP請求-響應模式難以滿足即時聊天、實時通知、協同編輯等場景的需求。本文將深入探討如何利用Django Channels框架實現WebSocket通信&#xff0c;為你的Django項目添加實時交互能力。為什么…

大數據畢業設計選題推薦-基于大數據的懂車帝二手車數據分析系統-Spark-Hadoop-Bigdata

?作者主頁&#xff1a;IT研究室? 個人簡介&#xff1a;曾從事計算機專業培訓教學&#xff0c;擅長Java、Python、微信小程序、Golang、安卓Android等項目實戰。接項目定制開發、代碼講解、答辯教學、文檔編寫、降重等。 ?文末獲取源碼? 精彩專欄推薦??? Java項目 Python…

python 通過selenium調用chrome瀏覽器

更新selenium pip install -U selenium 下載瀏覽器和對應的驅動 Chrome for Testing availability 一般選穩定版本的&#xff0c;我是windows的就下win64的&#xff0c; 下載兩個zip包后&#xff0c;把chromedriver.zip中的exe解壓縮放到chrome_win64文件夾中 from selen…

Codeium:免費開源代碼自動補全工具,高效管理代碼片段告別開發卡殼

你有沒有過這種尷尬時刻&#xff1f;寫代碼時突然想不起來常用的函數寫法&#xff0c;比如 Python 的字典推導式&#xff0c;或者 MySQL 的聯表查詢語句&#xff0c;翻之前的項目文件翻半天&#xff0c;好不容易找到又得復制粘貼 —— 要是遇到換電腦&#xff0c;之前存的代碼片…