本章將介紹Jenkins Pipeline的所有方面,從運行Pipeline到寫入Pipeline代碼,甚至擴展Pipeline本身。
本章旨在讓所有技能級別的Jenkins用戶使用,但初學者可能需要參考“ 使用Jenkins ”的一些部分來了解本章涵蓋的一些主題。
如果您還不熟悉Jenkins的基本術(shù)語和功能,請參考 Jenkins介紹。
Jenkins Pipeline是一套插件,支持將連續(xù)輸送Pipeline實施和整合到Jenkins。Pipeline提供了一組可擴展的工具,用于通過PipelineDSL為代碼創(chuàng)建簡單到復雜的傳送Pipeline。
通常,此“Pipeline代碼”將被寫入 Jenkinsfile項目的源代碼控制存儲庫,例如:
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'make'
}
}
stage('Test'){
steps {
sh 'make check'
junit 'reports/**/*.xml'
}
}
stage('Deploy') {
steps {
sh 'make publish'
}
}
}
}
agent
表示Jenkins應(yīng)該為Pipeline的這一部分分配一個執(zhí)行者和工作區(qū)。
stage
描述了這條Pipeline的一個階段。
steps
描述了要在其中運行的步驟 stage
sh
執(zhí)行給定的shell命令
junit
是由JUnit插件提供的 用于聚合測試報告的Pipeline步驟。
Jenkins從根本上講是一種支持多種自動化模式的自動化引擎。Pipeline在Jenkins上添加了一套強大的自動化工具,支持從簡單的連續(xù)集成到全面的連續(xù)輸送Pipeline的用例。通過建模一系列相關(guān)任務(wù),用戶可以利用Pipeline 的許多功能:
雖然Jenkins一直允許基本形式的自由式工作聯(lián)合起來執(zhí)行順序任務(wù),Pipeline使這個概念成為Jenkins的最好的一個部分。
基于Jenkins的核心可擴展性,Pipeline也可以由Pipeline共享庫用戶和插件開發(fā)人員擴展。
下面的流程圖是在Jenkins Pipeline中容易建模的一個連續(xù)發(fā)貨方案的示例:
圖1.Pipeline流量
單一任務(wù),從基礎(chǔ)中告訴了Jenkins應(yīng)該怎么做。例如,要執(zhí)行shell命令,請make
使用以下sh
步驟:sh 'make'
。當插件擴展Pipeline DSL時,通常意味著插件已經(jīng)實現(xiàn)了一個新的步驟。
Pipeline執(zhí)行中的大部分工作都是在一個或多個聲明node
步驟的上下文中完成的。將工作限制在Node步驟中有兩件事情:
根據(jù)您的Jenkins配置,某些工作空間在一段時間不活動后可能無法自動清除。
stage
是定義整個Pipeline的概念上不同子集的一個步驟,例如:“Build”,“Test”和“Deploy”,許多插件用于可視化或呈現(xiàn)Jenkins Pipeline狀態(tài)/進度。
更多建議: