Jenkins
官方文檔地址:https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/
概述
Jenkins的管道化插件對于其用戶來說是個改革。依賴于域領域語言(DSL)Groovy,管道化插件實現了腳本化
Groovy是一種基于JVM(Java虛擬機)的敏捷開發語言,它結合了Python、Ruby和Smalltalk的許多強大的特性
隨著管道插件的引入,用戶現在可以在Jenkinsfile中實現一個項目的整個構建/測試/部署管道,并將其存儲在他們的代碼旁邊,將他們的管道作為另一段代碼檢查到源代碼控制中。
這個管道插件的靈感來自于構建流插件,但它的目標是改進構建流所探索的一些概念,例如:
有能力暫停/恢復執行工作。
檢查管道定義到源代碼控制(Jenkinsfile)
支持用額外的組織spe擴展領域特定語言
Jenkins從根本上講是一種支持多種自動化模式的自動化引擎。Pipeline在Jenkins上添加了一套強大的自動化工具,支持從簡單的連續集成到全面的連續輸送Pipeline的用例。通過建模一系列相關任務,用戶可以利用Pipeline 的許多功能:
代碼:Pipeline以代碼的形式實現,通常被檢入源代碼控制,使團隊能夠編輯,審查和迭代其傳送流程。
?耐用:Pipeline可以在計劃和計劃外重新啟動Jenkins管理時同時存在。
Pausable:Pipeline可以選擇停止并等待人工輸入或批準,然后再繼續Pipeline運行。
]多功能:Pipeline支持復雜的現實世界連續交付要求,包括并行分叉/連接,循環和執行工作的能力。
可擴展:Pipeline插件支持其DSL的自定義擴展?以及與其他插件集成的多個選項。
參數/詞匯說明
Jenkinsfile的管道配置官網地址:https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/
credentiaiId : jenkins中對應的應用市場證書
readfile :從工作區讀取文件;
writeFile:向工作區寫入文件;
retry :重復執行最多N次
Step :一般構建步驟;
Dir :更改當前目錄;
Def :定義變量;
Sh : 執行;
sed的替換命令格式:s/A/B/g 或者s#A#B#g 或者s_A_B_g
如:sh 'sed -i \'s#${gdmp_ws_name}#gdmp-ws-develop#g\'lab/mainsite/gdmp-ws-SVC.yaml'? ;把svc文件中的{gdmp_ws_name} 替換成gdmp-ws-develop;
Stage: 一個Pipeline可以劃分為若干個Stage,每個Stage代表一組操作。注意,Stage是一個邏輯分組的概念,可以跨多個Node。
Node:一個Node就是一個Jenkins節點,或者是Master,或者是Agent,是執行Step的具體運行期環境。
Step:
Step是最基本的操作單元,小到創建一個目錄,大到構建一個Docker鏡像,由各類Jenkins Plugin提供。
Jenkinsfile:
Pipeline的定義文件,由Stage,Node,Step組成,一般存放于代碼庫根目錄下。
執行步驟(參考jenkins的控制臺進行進行說明)
Pipeline
Pipeline的視覺展現
Pipeline例子:
1.在任何可用的代理上執行此管道或其任何階段。
2.定義了“構建”階段。
3.執行與“構建”階段相關的一些步驟。
4.定義了“測試”階段。
5.執行與“測試”階段相關的一些步驟。
6.定義了“部署”階段。
7.執行與“部署”階段相關的一些步驟。
1.pipeline?是聲明式的管道特有的語法,它定義了一個“塊”,其中包含了執行整個管道的所有內容和指令。
2.agent?是聲明式的管道專用語法,它指示Jenkins分配一個遺囑執行人(在一個節點上)和整個管道的工作區。
3.stage?是描述這條管道的一個階段的語法塊。
4.steps?是聲明式的管道特定的語法,它描述了在這個階段將要運行的步驟。
5.sh?是一個管道步驟(由管道提供的:節點和進程插件)執行給定的shell命令。
6.junit?是另一個管道步驟(由JUnit插件提供)用于聚合測試報告。
node?是腳本化的管道專用語法,它指示Jenkins在任何可用的代理/節點上執行此管道。(以及其中包含的任何階段)。這實際上相當于聲明式管道特定語法中的代理。
一. Step:
單一任務,從基礎中告訴了Jenkins應該怎么做。例如,要執行shell命令,請make使用以下sh步驟:sh
'make'。當插件擴展Pipeline DSL時,通常意味著插件已經實現了一個新的步驟。
二. Node:
Pipeline執行中的大部分工作都是在一個或多個聲明node步驟的上下文中完成的。將工作限制在Node步驟中有兩件事情:
通過將項目添加到Jenkins隊列來調度要運行的塊中包含的步驟。一旦執行器在節點上空閑,步驟就會運行。
創建工作區(特定于該特定Pipeline的目錄),可以從源代碼控制中檢出的文件完成工作。
根據您的Jenkins配置,某些工作空間在一段時間不活動后可能無法自動清除。
三.Stage:
stage是定義整個Pipeline的概念上不同子集的一個步驟,例如:“Build”,“Test”和“Deploy”,許多插件用于可視化或呈現Jenkins Pipeline狀態/進度。
且Pipeline Stage View插件可以將管道中的一個個段進行可視化: