Jenkins Pipeline是一套插件,支持將連續(xù)輸送Pipeline實施和整合到Jenkins。Pipeline 提供了一組可擴展的工具,用于通過Pipeline DSL為代碼創(chuàng)建簡單到復雜的傳送Pipeline 。
本節(jié)介紹Jenkins Pipeline的一些關鍵概念,并幫助介紹在運行的Jenkins實例中定義和使用Pipelines的基礎知識。
要使用Jenkins Pipeline,您將需要:
要了解如何安裝和Pipeline插件,請參閱管理插件。
腳本Pipeline是用Groovy寫的 。Groovy語法的相關位將在本文檔中根據(jù)需要進行介紹,因此,當了解Groovy時,不需要使用Pipeline。
可以通過以下任一方式創(chuàng)建基本Pipeline:
用任一方法定義Pipeline的語法是一樣的,但是Jenkins支持直接進入Web UI的Pipeline,通常認為最佳實踐是在Jenkinsfile Jenkins中直接從源代碼控制中加載Pipeline。
要在Jenkins Web UI中創(chuàng)建基本Pipeline,請按照下列步驟操作:
Jenkins使用流水線的名稱在磁盤上創(chuàng)建目錄。包含空格的管道名稱可能會發(fā)現(xiàn)不希望路徑包含空格的腳本中的錯誤。
單擊“構建歷史記錄”下的#1,然后單擊控制臺輸出以查看Pipeline的完整輸出。
上面的示例顯示了在Jenkins Web UI中創(chuàng)建的基本Pipeline的成功運行,使用兩個步驟。
Jenkinsfile (Scripted Pipeline)
node {
echo 'Hello World'
}
:
node
在Jenkins環(huán)境中分配一個執(zhí)行器和工作空間。
:
echo
在控制臺輸出中寫入簡單的字符串
復雜的Pipeline難以在Pipeline配置頁面的文本區(qū)域內進行寫入和維護。為了使這更容易,Pipeline也可以寫在文本編輯器中,并檢查源控件,作為Jenkinsfile,Jenkins可以通過Pipeline腳本從SCM選項加載的控件。
為此,在定義Pipeline時,從SCM中選擇Pipeline腳本。
選擇SCM選項中的Pipeline腳本后,不要在Jenkins UI中輸入任何Groovy代碼; 您只需指定要從其中檢索Pipeline的源代碼中的路徑。更新指定的存儲庫時,只要Pipeline配置了SCM輪詢觸發(fā)器,就會觸發(fā)一個新構建。
文本編輯器,IDE,GitHub等將使用Groovy代碼進行語法高亮顯示, 第一行Jenkinsfile應該是#!/usr/bin/env groovy Jenkinsfile。
Pipeline配有內置的文檔功能,可以更輕松地創(chuàng)建不同復雜性的Pipeline。根據(jù)Jenkins實例中安裝的插件自動生成和更新內置文檔。
內置文檔可以在全局范圍內找到: localhost:8080 / pipeline-syntax /,假設您有一個Jenkins實例在本地端口8080上運行。同樣的文檔也作為管道語法鏈接到任何配置的Pipeline的側欄中項目。
內置的“Snippet Generator”實用程序有助于為單個步驟創(chuàng)建一些代碼,發(fā)現(xiàn)插件提供的新步驟,或為特定步驟嘗試不同的參數(shù)。
Snippet Generator動態(tài)填充Jenkins實例可用的步驟列表。可用的步驟數(shù)量取決于安裝的插件,它明確地暴露了在Pipeline中使用的步驟。
要使用代碼段生成器生成步驟代碼片段:
要訪問有關所選步驟的其他信息和/或文檔,請單擊幫助圖標(由上圖中的紅色箭頭指示)。
除了代碼片段生成器之外,Pipeline還提供了一個內置的“ 全局變量引用”。像Snippet Generator一樣,它也是由插件動態(tài)填充的。與代碼段生成器不同的是,全局變量引用僅包含Pipeline提供的變量的文檔,這些變量可用于Pipeline。
在Pipeline中默認提供的變量是:
腳本化Pipeline可訪問的環(huán)境變量,例如: env.PATH
或env.BUILD_ID
。請參閱內置的全局變量參考 ,以獲取管道中可用的完整和最新的環(huán)境變量列表。
將為Pipeline定義的所有參數(shù)公開為只讀 地圖,例如:params.MY_PARAM_NAME
。
可用于發(fā)現(xiàn)有關當前正在執(zhí)行的Pipeline信息,與如屬性currentBuild.result
,currentBuild.displayName
等等請教內置的全局變量引用 了一個完整的,而且是最新的,可用的屬性列表currentBuild
。
本節(jié)只是劃傷了Jenkins Pipeline可以做的工作,但應該為您提供足夠的基礎,開始嘗試使用測試Jenkins實例。
在下一節(jié)中,Jenkinsfile將會更多的管道步驟與實現(xiàn)成功的,真實的Jenkins Pipeline的模式一起討論。
更多建議: