前言
前篇博文我們實踐了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集成持續交付管道的資料請關注服務器之家其它相關文章!
原文地址:http://www.kailing.pub/article/index/arcid/204.html