Jenkins的Pipeline流水線

目錄

前言

流水線概念

什么是流水線

Jenkins流水線

pipeline

node

stage

step

創建一個簡單的流水線

創建Pipeline項目

選擇模板

測試


前言

????????提到 CI 工具,首先想到的就是“CI 界”的大佬——Jenkjns,雖然在云原生爆發的年代,蹦出來了很多云原生的 CI 工具,但是都不足以撼動 Jenkins 的地位。在企業中對于持續集成、持續部署的需求非常多,并且也會經常有-些比較復雜的需求,此時新生的 CI 工具不足以支撐這些很復雜的需求。但是 Jenkins豐富的插件基本上可以滿足任何場景。

流水線概念

什么是流水線

????????Jenkins 流 水 線 是 一 套 插 件 , 它 支 持 在 Jenkins 中 實 現 和 集 成 持 續 交 付 流 水 線(ContinuousDeliveryPipeline)。流水線提供了一組可擴展的工具,用于通過 Pipeline DSL 將簡單到復雜的交付流水線以代碼的形勢展現,類似于基礎設施即代碼。

????????持續交付流水線會經歷一個復雜的過程:從版本控制、向用戶和客戶提交軟件、軟件的每次變更(提交代碼到倉庫)到軟件發布(Release)。這個過程包括以一種可靠并可重復的方式構建軟件,以及通過多個測試和部署階段來開發構建好的軟件(稱為 Build)。

????????Jenkins 流水線的定義被寫在一個文本文件中(一般為 Jenkinshle),該文件“定制”了整個構建軟件的過程. Jenkinsfile 也可以被提交到項目的代碼倉庫中,在 Jenkjns 中可以直接引用。將持續交付流水線作為應用程序的一部分,像其他代碼一樣進行版本化和審查,這是流水線即代碼的基礎。

創建 Jenkinsfile 并提交到代碼倉庫中的好處如下:

  • 自動為所有分支創建流水線構建過程。
  • 在流水線上進行代碼復查/迭代。
  • 對流水線進行審計跟蹤。
  • 流水線的代碼可以被項目的多個成員查看和編輯。
  • 可以對 Jenkinsfile 進行版本控制。

Jenkins流水線

????????Jenkins 流水線主要分為聲明式分和腳本式兩種,包含 pipline(流水線)、node(節點)、stage(階段)、step(步驟)等區塊。

pipeline

????????pipeline 是用戶定義的一個持續交付(CD)流水線模型。流水線的代碼定義了整個構建過程,包括構建、測試和交付應用程序的階段。另外,pipeline 塊是聲明式流水線語法的關鍵部分。

node

????????node 是—個機器,它是 Jenkins 環境的-部分,另外,node 塊是腳本化流水線語法的關鍵部分。

stage

????????stage 塊定義了在整個流水線的執行任務中概念不同的子集(比如 Bujld、Test、Deploy 階段),它被許多插件用于可視化 Jenkins 流水線當前的狀態/進展。

step

????????本質上是指通過一個單一的任務告訴 Jenkins 在特定的時間點需要做什么,比如要執行 shell 命令,可以使用 sh SHELL_COMMAND。其運行里程如下圖所示:

????????從上文可以了解,Jenkins 流水線分為腳本式和聲明式,而聲明式是“新一代”的流水線, 比腳本式更加靈活,可讀性更強,并且聲明式流水線支持以圖形化的方式進行編輯,所以聲明式流水線是著重學習的對象。

創建一個簡單的流水線

創建Pipeline項目

選擇模板

在定義中選擇“Pipline script”,模板使用“Hello World”

  • stages:代表整個流水線的所有執行階段。通常 stages 只有 1 個,里面包含多個 stage
  • stage:代表流水線中的某個階段,可能出現 n 個。一般分為拉取代碼,編譯構建,部署等階段。
  • steps:代表一個階段內需要執行的邏輯。steps 里面是 shell 腳本,git 拉取代碼,ssh 遠程發布等任意內容。

agent 指定了流水線的執行節點。

參數:

  • any 在任何可用的節點上執行 pipeline。
  • none 沒有指定 agent 的時候默認。
  • label 在指定標簽上的節點上運行 Pipeline。
  • node 允許額外的選項。

根據流水線或階段的完成情況而運行(取決于流水線中 post 部分的位置).

post 支持以下post-condition 塊中的其中之一: always, changed, failure, success, unstable, 和 aborted。這些條件塊允許在 post 部分的步驟的執行取決于流水線或階段的完成狀態。

  • always 無論流水線或者階段的完成狀態。
  • changed 只有當流水線或者階段完成狀態與之前不同時。
  • failure 只有當流水線或者階段狀態為”failure”運行。
  • success 只有當流水線或者階段狀態為”success”運行。
  • unstable 只有當流水線或者階段狀態為”unstable”運行。例如:測試失敗。
pipeline {agent anystages {stage('Example') {steps {echo 'Hello World'}}}post {always {echo 'I will always say Hello again!'}}
}

測試

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

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

相關文章

Hive的窗口函數

定義: 聚合函數是針對定義的行集(組)執行聚集,每組只返回一個值.如sum()、avg()、max() 窗口函數也是針對定義的行集(組)執行聚集,可為每組返回多個值.如既要顯示聚集前的數據,又要顯示聚集后的數據.步驟: 1.將記錄分割成多個分區. 2.在各個分區上調用窗…

word-表格疑難雜癥診治

一、用表格進行排版圖片、制作公文頭 可以在插入圖片時固定列寬 二、表格中的疑難雜癥 問題一:表格超過頁面,右側文字看不見 解決:表格窗口-布局-自動調整-根據窗口自動調整表格 問題二:表格底部文字被遮擋 解決:布…

ArcGIS Maps SDK for JS:使用queryFeatures方法查詢 FeatureLayer 中符合條件的要素

文章目錄 方式一:使用featureLayer.createQuery()方法方式二:使用 Query 構造函數方式三:簡化寫法 要想查詢FeatureLayer 圖層中滿足某些條件的要素,可以使用ArcGIS API for JavaScript 提供的queryFeatures() 方法和 Query 對象進…

【linux】yumvim工具理解使用

目錄 Linux 軟件包管理器 yum 關于 rzsz 注意事項 查看軟件包 Linux開發工具 Linux編輯器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 簡單vim配置 配置文件的位置 sudo提權 Linux 軟件包管理器 yum 1.yum是什么&#xff1…

攻防世界---web---warmup

1、題目描述 2、查看源碼,發現有個source.php 3、訪問該文件,得到這一串代碼 4、分析代碼 5、訪問hint.php,提示flag在ffffllllaaaagggg這個文件下 6、構造payload ?filesource.php?/../../../../../../ffffllllaaaagggg

Fitting Parameterized Three-Dimensional Models to Images

摘要 基于模型的識別和運動跟蹤依賴于解決投影和模型參數,使其最佳適應匹配的2D圖像特征的3D模型的能力。本文將當前的參數求解方法擴展到處理具有任意曲面和任意數量的內部參數(表示關節、可變尺寸或表面變形)的對象。開發了數值穩定化方法…

懶人網址導航頁 search.html SQL注入漏洞復現

0x01 產品簡介 懶人網址導航系統是一種智能化的網址導航平臺,旨在幫助用戶快速找到所需的網址和資源。該系統提供了智能化的網址搜索和推薦功能,能夠根據用戶的搜索習慣和偏好推薦相關的網址和資源。同時,系統還提供了網址分類、網址收藏和網址分享等功能,方便用戶管理和共…

git常見的18條指令

使用git的時候有沒有遺忘指令的情況呢?小編替大家整理出來了18條常用的指令,大家趕緊收藏起來吧! gti常見的18條指令 序號指令含義1git init初始化一個倉庫2git clone [url]克隆一個倉庫3git add [file]添加文件到暫存區4git commit -m "…

簡易Docker磁盤使用面板Doku

這個項目似乎有 1 年多沒更新了,最后發布版本的問題也沒人修復,所以看看就行,不建議安裝 什么是 Doku ? Doku 是一個簡單、輕量級的基于 Web 的應用程序,允許您以用戶友好的方式監控 Docker 磁盤使用情況。Doku 顯示 D…

easyexcel導出動態標題,以及動態設置下拉選擇,并設置下拉選擇校驗

目錄 1.說明 2.示例 3.總結 1.說明 平時使用easyexcel進行導出時,標題的名字通過在表的實體類上添加注解的方式進行實現,然后傳入表的實體類的集合進行下載即可。 有這么一個需求,用戶可以自定義導出的模板,也就是說導出的模板…

南京沁恒微USB HUB CH334/CH335多種封裝規格選擇,外圍簡單,價格還美麗

概述: CH334 和 CH335 是符合 USB2.0 協議規范的 全速,下行端口支持 USB2.0 高速 480Mbps 個 TT 分時調度 4 個下行端口),還支持高性能的 工業級設計,外圍精簡,可應用于計算機和工控機主板 特點&#xff1…

精品UI響應式視頻教程知識付費系統源碼在線教育網絡課程在線點播可二開分銷分站功能

這是一款知識付費平臺模板,后臺可上傳本地視頻,批量上傳視頻連接, 視頻后臺可設計權限觀看,免費試看時間時長,會員等級觀看,付費觀看等功能, 也帶軟件app權限下載,幫助知識教育和軟件…

域名郵箱是什么?怎么注冊公司的域名郵箱?

擁有一個專業、獨特的郵箱地址不僅能提升企業形象,還能增強客戶信任感。域名郵箱是什么?域名郵箱也稱為企業郵箱或定制郵箱,是一種基于企業自主域名設置的電子郵件服務。本文將詳細介紹域名郵箱的概念、優勢以及如何注冊公司的域名郵箱 一、…

事務的ACID是什么及扁平化事務、鏈式事務

一、什么是事務 1.事務(Transaction)是區別于數據庫文件系統的重要特性之一。事務會把數據庫從一種一致狀態轉換為另一種一致狀態。在數據庫提交工作時,可以確保要么所有修改都已經保存,要么所有修改都不保存。 2.InnoDB存儲引擎中的事物完…

WPF實現搜索文本高亮

WPF實現搜索文本高亮 1、使用自定義的TextBlock public class HighlightTextblock : TextBlock{public string DefaultText { get; set; }public string HiText{get { return (string)GetValue(HiTextProperty); }set { SetValue(HiTextProperty, value); }}// Using a Depend…

31.@Anonymous

1?@Anonymous原理 大家應該已經習慣我的教學套路,很多時候都是先使用,然后講述原理。 上節課我們使用了注解@Anonymous,然后接口就可以直接被訪問到了,不用token!不用token!不用token!。 我們一般知道,注解是給程序看的,給機器看的,當然也是給程序員看的。注解如果…

詳解HTML

目錄 1.HTML 結構 1.1認識HTML標簽 1.2標簽層次結構 1.3快速生成代碼框架 2.HTML常見標簽 2.1注釋標簽 2.2標題標簽:h1-h6 2.3段落標簽:p 2.4換行標簽:br 2.5格式化標簽 2.6圖片標簽:img 2.7超鏈接標簽 2.8表格標簽…

全域運營是本地生活的下半場?新的創業風口來了?

隨著全域概念的興起,全域運營賽道也逐漸進入人們的視野之中,甚至有業內人士預測,全域運營將會是本地生活下半場的大趨勢。 之所以這么說,是因為全域運營作為包含了公域和私域內所有運營業務的新模式,不僅能同時做所有本…

設計模式-解釋器模式

作者持續關注 WPS二次開發專題系列,持續為大家帶來更多有價值的WPS開發技術細節,如果能夠幫助到您,請幫忙來個一鍵三連,更多問題請聯系我(QQ:250325397) 定義 解釋器模式(Interpreter Pattern&…

vue3 組件刷新

在 Vue 3 中&#xff0c;如果你想刷新一個組件&#xff0c;有幾種方法可以實現。 使用 key 屬性: 當你想要強制重新渲染一個組件時&#xff0c;你可以為其添加一個獨特的 key 屬性。當 key 屬性的值改變時&#xff0c;Vue 會強制組件重新創建。 <template> <MyComp…