W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
本章將介紹Jenkins Pipeline的所有方面,從運(yùn)行Pipeline到寫(xiě)入Pipeline代碼,甚至擴(kuò)展Pipeline本身。
本章旨在讓所有技能級(jí)別的Jenkins用戶(hù)使用,但初學(xué)者可能需要參考“ 使用Jenkins ”的一些部分來(lái)了解本章涵蓋的一些主題。
如果您還不熟悉Jenkins的基本術(shù)語(yǔ)和功能,請(qǐng)參考 Jenkins介紹。
Jenkins Pipeline是一套插件,支持將連續(xù)輸送Pipeline實(shí)施和整合到Jenkins。Pipeline提供了一組可擴(kuò)展的工具,用于通過(guò)PipelineDSL為代碼創(chuàng)建簡(jiǎn)單到復(fù)雜的傳送Pipeline。
通常,此“Pipeline代碼”將被寫(xiě)入 Jenkinsfile項(xiàng)目的源代碼控制存儲(chǔ)庫(kù),例如:
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的這一部分分配一個(gè)執(zhí)行者和工作區(qū)。
stage
描述了這條Pipeline的一個(gè)階段。
steps
描述了要在其中運(yùn)行的步驟 stage
sh
執(zhí)行給定的shell命令
junit
是由JUnit插件提供的 用于聚合測(cè)試報(bào)告的Pipeline步驟。
Jenkins從根本上講是一種支持多種自動(dòng)化模式的自動(dòng)化引擎。Pipeline在Jenkins上添加了一套強(qiáng)大的自動(dòng)化工具,支持從簡(jiǎn)單的連續(xù)集成到全面的連續(xù)輸送Pipeline的用例。通過(guò)建模一系列相關(guān)任務(wù),用戶(hù)可以利用Pipeline 的許多功能:
雖然Jenkins一直允許基本形式的自由式工作聯(lián)合起來(lái)執(zhí)行順序任務(wù),Pipeline使這個(gè)概念成為Jenkins的最好的一個(gè)部分。
基于Jenkins的核心可擴(kuò)展性,Pipeline也可以由Pipeline共享庫(kù)用戶(hù)和插件開(kāi)發(fā)人員擴(kuò)展。
下面的流程圖是在Jenkins Pipeline中容易建模的一個(gè)連續(xù)發(fā)貨方案的示例:
圖1.Pipeline流量
單一任務(wù),從基礎(chǔ)中告訴了Jenkins應(yīng)該怎么做。例如,要執(zhí)行shell命令,請(qǐng)make
使用以下sh
步驟:sh 'make'
。當(dāng)插件擴(kuò)展Pipeline DSL時(shí),通常意味著插件已經(jīng)實(shí)現(xiàn)了一個(gè)新的步驟。
Pipeline執(zhí)行中的大部分工作都是在一個(gè)或多個(gè)聲明node
步驟的上下文中完成的。將工作限制在Node步驟中有兩件事情:
根據(jù)您的Jenkins配置,某些工作空間在一段時(shí)間不活動(dòng)后可能無(wú)法自動(dòng)清除。
stage
是定義整個(gè)Pipeline的概念上不同子集的一個(gè)步驟,例如:“Build”,“Test”和“Deploy”,許多插件用于可視化或呈現(xiàn)Jenkins Pipeline狀態(tài)/進(jìn)度。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: