首頁 > 軟體

jenkins外掛pipeline整合持續交付管道全面介紹

2022-03-01 19:02:16

前言

前篇博文  構建及部署jenkins pipeline實現持續整合持續交付指令碼

我們實踐了jenkins pipeline的指令碼模式,體驗到了pipeline的流式構建流程,以及通過bule  ocean更清晰的展示了構建的全過程,下面我們就jenkins pipeline相關內容做個全面的瞭解。

Jenkins pipeline是什麼?

Jenkins Pipeline是一套外掛,支援在Jenkins中實施和整合持續交付管道。

一個持續交付(CD)管道是從使用者到版本控制軟體的自動化表達。對軟體的每一次改變(在原始碼控制中提交)都會在釋出過程中經歷一個複雜的過程。這個過程包括以可靠和可重複的方式構建軟體,以及通過測試和部署的多個階段來推進構建的軟體(稱為“構建”)。

Pipeline提供了一套可延伸的工具,用於通過管道域特定語言(DSL)語法將“簡單到複雜”的交付管道使用“程式碼”建模 。

Jenkins管道的定義被寫入到一個jenkinsfile的文字檔案,該檔案又可以被提交到專案的原始碼控制庫。這是“Pipeline-as-code”的基礎。將CD管道作為應用程式的一部分進行版本控制,並像任何其他程式碼一樣進行審查。

為什麼使用pipeline?

Jenkins從根本上說是一個支援多種自動化模式的自動化引擎。Pipeline在Jenkins上增加了一套強大的自動化工具,支援從簡單的持續整合到全面的CD管道的用例。通過對一系列相關任務建模,使用者可以利用Pipeline的更多功能,如:

  • 可維護:管道是在程式碼中實現的,並且通常會被簽入原始碼管理,從而使團隊能夠編輯,審閱和迭代他們的交付管道。
  • 可能出現:在繼續進行管道執行之前,管道可以選擇停止並等待人員輸入或批准。
  • 複雜場景:管道支援複雜的實際CD需求,包括分叉/連線,迴圈和並行執行工作的能力。
  • 可延伸性:Pipeline外掛支援對其DSL的客製化擴充套件 。

enkinsfile支援指令碼式Scripted Pipeline和宣告式Declarative Pipeline

Scripted Pipeline

宣告式Declarative Pipeline

其中關鍵語法異同如下:

 pipeline 是宣告性管道特定語法,它定義了一個包含執行整個管道的所有內容和指令的“塊”。

 agent 是宣告式管道特定的語法,它指示Jenkins為整個管道分配執行程式(在節點上)和工作空間。

 stage是描述此Pipeline階段的語法塊 。stage在Pipeline語法頁面上閱讀關於宣告式管道語法塊的更多資訊。如所提到的上述,stage塊在指令碼管道語法可選的。

 steps是宣告式管道特定語法,用於描述要在此中執行的步驟stage。

 sh是一個Pipeline 步驟(由 Pipeline:Nodes和Processes外掛提供)執行給定的shell命令。

 node是指令碼化的管道特定語法,指示Jenkins在任何可用的代理/節點上執行此管道(以及其中包含的任何階段)。這與agent宣告式管道特定語法中的效果相同。

使用Jenkinsfile的好處:

雖然用於定義管道的指令碼語法和jenkinsfile類似,但通常認為在專案中定義管道Jenkinsfile並檢查原始碼管理是最佳實踐。

  • 為所有分支和請求自動建立一個管道構建過程。
  • 管道上的程式碼審查/迭代。
  • 稽核追蹤管道。
  • Pipeline的單一真實來源,可由專案的多個成員檢視和編輯

關於Blue Ocean

     Blue Ocean是pipeline的視覺化UI。同時他相容經典的自由模式的job。Jenkins Pipeline從頭開始設計,但仍與自由式作業相容,Blue Ocean減少了經典模式下的混亂併為團隊中的每個成員增加了清晰度。Blue Ocean的主要特點包括:

  •  連續交付(CD)管道的複雜視覺化,可以讓您快速直觀地理解管道狀態。 
  • 管道編輯器 - 通過引導使用者通過直觀和視覺化的過程來建立管道,從而使管道的建立變得平易近人。
  • 個性化以適應團隊中每個成員的基於角色的需求。
  • 在需要干預和/或出現問題時確定精確度。Blue Ocean顯示的標註了關鍵步驟,促進例外處理和提高生產力。

以上就是jenkins外掛pipeline整合持續交付管道全面介紹的詳細內容,更多關於jenkins外掛pipeline整合持續交付管道的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com