Pipeline 入門

2018-08-26 10:50 更新

Jenkins Pipeline是一套插件,支持將連續(xù)輸送Pipeline實(shí)施和整合到Jenkins。Pipeline 提供了一組可擴(kuò)展的工具,用于通過Pipeline DSL為代碼創(chuàng)建簡(jiǎn)單到復(fù)雜的傳送Pipeline 。 

本節(jié)介紹Jenkins Pipeline的一些關(guān)鍵概念,并幫助介紹在運(yùn)行的Jenkins實(shí)例中定義和使用Pipelines的基礎(chǔ)知識(shí)。

先決條件

要使用Jenkins Pipeline,您將需要:

  • Jenkins 2.x或更高版本(舊版本回到1.642.3可能會(huì)工作,但不推薦)
  • Pipeline插件

要了解如何安裝和Pipeline插件,請(qǐng)參閱管理插件

Pipeline 定義

腳本Pipeline是用Groovy寫的 。Groovy語法的相關(guān)位將在本文檔中根據(jù)需要進(jìn)行介紹,因此,當(dāng)了解Groovy時(shí),不需要使用Pipeline。

可以通過以下任一方式創(chuàng)建基本Pipeline:

  • 直接在Jenkins網(wǎng)頁界面中輸入腳本。
  • 通過創(chuàng)建一個(gè)Jenkinsfile可以檢入項(xiàng)目的源代碼管理庫。

用任一方法定義Pipeline的語法是一樣的,但是Jenkins支持直接進(jìn)入Web UI的Pipeline,通常認(rèn)為最佳實(shí)踐是在Jenkinsfile Jenkins中直接從源代碼控制中加載Pipeline。

在Web UI中定義Pipeline

要在Jenkins Web UI中創(chuàng)建基本Pipeline,請(qǐng)按照下列步驟操作:

  • 單擊Jenkins主頁上的New Item。

Pipeline 入門


  • 輸入Pipeline的名稱,選擇Pipeline,然后單擊確定
Jenkins使用流水線的名稱在磁盤上創(chuàng)建目錄。包含空格的管道名稱可能會(huì)發(fā)現(xiàn)不希望路徑包含空格的腳本中的錯(cuò)誤。

Pipeline 入門

  • 腳本文本區(qū)域中,輸入Pipeline,然后單擊保存。

Pipeline 入門

  • 單擊立即生成以運(yùn)行Pipeline。

Pipeline 入門

單擊“構(gòu)建歷史記錄”下的#1,然后單擊控制臺(tái)輸出以查看Pipeline的完整輸出。

Pipeline 入門

上面的示例顯示了在Jenkins Web UI中創(chuàng)建的基本Pipeline的成功運(yùn)行,使用兩個(gè)步驟。

Jenkinsfile (Scripted Pipeline)
node { 
    echo 'Hello World' 
}

node 在Jenkins環(huán)境中分配一個(gè)執(zhí)行器和工作空間。

echo 在控制臺(tái)輸出中寫入簡(jiǎn)單的字符串

在SCM中定義管道

復(fù)雜的Pipeline難以在Pipeline配置頁面的文本區(qū)域內(nèi)進(jìn)行寫入和維護(hù)。為了使這更容易,Pipeline也可以寫在文本編輯器中,并檢查源控件,作為Jenkinsfile,Jenkins可以通過Pipeline腳本從SCM選項(xiàng)加載的控件。

為此,在定義Pipeline時(shí),從SCM中選擇Pipeline腳本。

選擇SCM選項(xiàng)中的Pipeline腳本后,不要在Jenkins UI中輸入任何Groovy代碼; 您只需指定要從其中檢索Pipeline的源代碼中的路徑。更新指定的存儲(chǔ)庫時(shí),只要Pipeline配置了SCM輪詢觸發(fā)器,就會(huì)觸發(fā)一個(gè)新構(gòu)建。

文本編輯器,IDE,GitHub等將使用Groovy代碼進(jìn)行語法高亮顯示, 第一行Jenkinsfile應(yīng)該是#!/usr/bin/env groovy Jenkinsfile。

內(nèi)置文檔

Pipeline配有內(nèi)置的文檔功能,可以更輕松地創(chuàng)建不同復(fù)雜性的Pipeline。根據(jù)Jenkins實(shí)例中安裝的插件自動(dòng)生成和更新內(nèi)置文檔。

內(nèi)置文檔可以在全局范圍內(nèi)找到: localhost:8080 / pipeline-syntax /,假設(shè)您有一個(gè)Jenkins實(shí)例在本地端口8080上運(yùn)行。同樣的文檔也作為管道語法鏈接到任何配置的Pipeline的側(cè)欄中項(xiàng)目。

Pipeline 入門

代碼段生成器

內(nèi)置的“Snippet Generator”實(shí)用程序有助于為單個(gè)步驟創(chuàng)建一些代碼,發(fā)現(xiàn)插件提供的新步驟,或?yàn)樘囟ú襟E嘗試不同的參數(shù)。

Snippet Generator動(dòng)態(tài)填充Jenkins實(shí)例可用的步驟列表。可用的步驟數(shù)量取決于安裝的插件,它明確地暴露了在Pipeline中使用的步驟。

要使用代碼段生成器生成步驟代碼片段:

  1. 從配置的流水線或本地主機(jī):8080 / pipeline-syntax導(dǎo)航到Pipeline語法鏈接(上面引用)。
  2. 在“ 樣品步驟”下拉菜單中選擇所需的步驟
  3. 使用“ 樣品步驟”下拉列表下方的動(dòng)態(tài)填充區(qū)域配置所選步驟。
  4. 單擊生成Pipeline腳本以創(chuàng)建一個(gè)可以復(fù)制并粘貼到Pipeline中的Pipeline代碼段。

Pipeline 入門

要訪問有關(guān)所選步驟的其他信息和/或文檔,請(qǐng)單擊幫助圖標(biāo)(由上圖中的紅色箭頭指示)。

全局變量引用

除了代碼片段生成器之外,Pipeline還提供了一個(gè)內(nèi)置的“ 全局變量引用”。像Snippet Generator一樣,它也是由插件動(dòng)態(tài)填充的。與代碼段生成器不同的是,全局變量引用僅包含Pipeline提供的變量的文檔,這些變量可用于Pipeline。

在Pipeline中默認(rèn)提供的變量是:

ENV

腳本化Pipeline可訪問的環(huán)境變量,例如: env.PATHenv.BUILD_ID。請(qǐng)參閱內(nèi)置的全局變量參考 ,以獲取管道中可用的完整和最新的環(huán)境變量列表。

PARAMS

將為Pipeline定義的所有參數(shù)公開為只讀 地圖,例如:params.MY_PARAM_NAME

currentBuild

可用于發(fā)現(xiàn)有關(guān)當(dāng)前正在執(zhí)行的Pipeline信息,與如屬性currentBuild.resultcurrentBuild.displayName等等請(qǐng)教內(nèi)置的全局變量引用 了一個(gè)完整的,而且是最新的,可用的屬性列表currentBuild。

進(jìn)一步閱讀

本節(jié)只是劃傷了Jenkins Pipeline可以做的工作,但應(yīng)該為您提供足夠的基礎(chǔ),開始嘗試使用測(cè)試Jenkins實(shí)例。

在下一節(jié)中,Jenkinsfile將會(huì)更多的管道步驟與實(shí)現(xiàn)成功的,真實(shí)的Jenkins Pipeline的模式一起討論。

其他資源

  • Pipeline步驟參考,包含分布在Jenkins更新中心的插件提供的所有步驟。
  • Pipeline示例,一個(gè)社區(qū)策劃的可復(fù)制Pipeline示例的集合。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)