軟件交付持續集成jenkins pipeline全面介紹

軟件交付持續集成jenkins pipeline全面介紹

前言碎語

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

l . Jenkins pipeline是什麼?

Jenkins Pipeline是一套插件,支持在Jenkins中實施和集成持續交付管道。

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

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

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

l 為什麼使用pipeline?

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

  1. 可維護:管道是在代碼中實現的,並且通常會被簽入源代碼管理,從而使團隊能夠編輯,審閱和迭代他們的交付管道。
  2. 可能出現:在繼續進行管道運行之前,管道可以選擇停止並等待人員輸入或批准。
  3. 複雜場景:管道支持複雜的實際CD需求,包括分叉/連接,循環和並行執行工作的能力。
  4. 可擴展性:Pipeline插件支持對其DSL的定製擴展 。

l Jenkinsfile支持腳本式Scripted Pipeline和聲明式Declarative Pipeline

Scripted Pipeline

軟件交付持續集成jenkins pipeline全面介紹

聲明式Declarative Pipeline

軟件交付持續集成jenkins pipeline全面介紹

其中關鍵語法異同如下:

  • pipeline 是聲明性管道特定語法,它定義了一個包含執行整個管道的所有內容和指令的“塊”。
  • agent 是聲明式管道特定的語法,它指示Jenkins為整個管道分配執行程序(在節點上)和工作空間。
  • stage是描述此Pipeline階段的語法塊 。stage在Pipeline語法頁面上閱讀關於聲明式管道語法塊的更多信息。如所提到的上述,stage塊在腳本管道語法可選的。
  • steps是聲明式管道特定語法,用於描述要在此中運行的步驟stage。
  • sh是一個Pipeline 步驟(由 Pipeline:Nodes和Processes插件提供)執行給定的shell命令。
  • node是腳本化的管道特定語法,指示Jenkins在任何可用的代理/節點上執行此管道(以及其中包含的任何階段)。這與agent聲明式管道特定語法中的效果相同。

l 使用Jenkinsfile的好處:

雖然用於定義管道的腳本語法和jenkinsfile類似,但通常認為在項目中定義管道Jenkinsfile並檢查源代碼管理是最佳實踐。

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

l 關於Blue Ocean

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

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

軟件交付持續集成jenkins pipeline全面介紹


分享到:


相關文章: