當前位置:
首頁 > 最新 > pipeline:pipeline 使用之快速入門

pipeline:pipeline 使用之快速入門

什麼是pipeline

先介紹下什麼是Jenkins 2.0,Jenkins 2.0的精髓是Pipeline as Code,是幫助Jenkins實現CI到CD轉變的重要角色。什麼是Pipeline,簡單來說,就是一套運行於Jenkins上的工作流框架,將原本獨立運行於單個或者多個節點的任務連接起來,實現單個任務難以完成的複雜發布流程。Pipeline的實現方式是一套Groovy DSL,任何發布流程都可以表述為一段Groovy腳本,並且Jenkins支持從代碼庫直接讀取腳本,從而實現了Pipeline as Code的理念。

Pipeline的幾個基本概念:

Stage: 階段,一個Pipeline可以劃分為若干個Stage,每個Stage代表一組操作。注意,Stage是一個邏輯分組的概念,可以跨多個Node。

Node: 節點,一個Node就是一個Jenkins節點,或者是Master,或者是Agent,是執行Step的具體運行期環境。

Step: 步驟,Step是最基本的操作單元,小到創建一個目錄,大到構建一個Docker鏡像,由各類Jenkins Plugin提供。

本節介紹Jenkins Pipeline的一些核心概念,並介紹在運行的Jenkins實例中定義和使用Pipelines的基礎知識。

使用條件

要使用Jenkins Pipeline,需要:

Jenkins 2.x或更高版本

Pipeline插件

Pipeline定義

Pipeline腳本是用Groovy寫的 。Groovy語法將在後續文檔中介紹。

可以通過以下任一方式創建基本Pipeline:

pipeline script:直接在Web UI的script輸入框裡面輸入pipeline script語句即可,參考說明可以點擊輸入框下邊的Pipeline Syntax,裡面有很多示例操作說明,非常好用。

pipeline script from SCM:需要配置SCM代碼存儲Git地址或SVN地址,指定script文件Jenkinsfile所在路徑,每次構建job會自動去指定的目錄執行script文件

以上兩種方法定義Pipeline的語法都是一樣的。

在Web UI中定義Pipeline

要在Jenkins Web UI中創建基本Pipeline Job,請按照下列步驟操作:

單擊Jenkins主頁上的New Item。

輸入Pipeline的名稱,選擇Pipeline,然後單擊確定。

在腳本文本區域中,輸入Pipeline,然後單擊保存。

單擊「構建歷史記錄」下的#buildId,然後單擊控制台輸出以查看Pipeline的完整輸出

在SCM中定義pipeline

複雜的Pipeline難以在Pipeline配置頁面的文本區域內進行寫入和維護。為了解決這一問題,jenkins Pipeline支持在文本編輯器中編寫腳本文件jenkinsFile,Jenkins可以通過從SCM選項的控制項中載入Pipeline腳本。

選擇SCM選項中的Pipeline腳本後,不要在Jenkins UI中輸入任何Groovy代碼; 只需指定要檢索的Pipeline腳本的路徑。更新指定的存儲庫時,只要Pipeline配置了SCM輪詢觸發器,就會觸發一個新構建。

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

內置文檔

Pipeline配有內置的文檔功能,可以更輕鬆地創建不同複雜性的Pipeline。根據Jenkins實例中安裝的插件自動生成和更新內置文檔。

內置文檔可以在全局範圍內找到: localhost:8080/pipeline-syntax/,假設您有一個Jenkins實例在本地埠8080上運行。同樣的文檔也作為pipeline語法鏈接到任何配置的Pipeline的側欄中項目。

代碼段生成器

內置的「Snippet Generator」程序有助於為單個步驟生成代碼段。

Snippet Generator動態填充Jenkins實例可用的步驟列表。可用的步驟數量取決於安裝的插件,它明確地暴露了在Pipeline中使用的步驟。

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

1、從配置的流水線或本地主機:8080 / pipeline-syntax導航到Pipeline語法鏈接Pipeline Syntax

2、在「 Sample Step」下拉菜單中選擇所需的步驟,使用「Sample Step」下拉列表下方的動態填充區域配置所選步驟,如message為「hello world」,單擊生成Pipeline腳本以創建一個可以複製並粘貼到Pipeline中的Pipeline代碼段

全局變數引用

除了代碼片段生成器之外,Pipeline還提供了一個內置的「 全局變數引用」。像Snippet Generator一樣,它也是由插件動態填充的。與代碼段生成器不同的是,全局變數引用僅包含Pipeline提供的變數,這些變數可用於Pipeline。

在Pipeline中默認提供的變數是:

ENV

Pipeline腳本可訪問的環境變數,例如: env.PATH或env.BUILD_ID。請參閱內置的全局變數,以獲取管道中可用的完整和最新的環境變數列表。

PARAMS

將為Pipeline定義的所有參數公開,例如:params.MY_PARAM_NAME。

currentBuild

可獲取當前正在執行的Pipeline job的信息,例如屬性currentBuild.result,currentBuild.displayName等等

引用官方文檔:https://jenkins.io/doc/book/pipeline/getting-started/

Groovy語法及入門:

Groovy入門之語法和變數定義

Groovy進階之函數、閉包和類

精通 Groovy

主帖直達:https://testerhome.com/topics/9977

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 TesterHome 的精彩文章:

腦洞小開-selenium,動態運行日常調試代碼

TAG:TesterHome |