前言
前篇博文我們實踐了jenkins pipeline的腳本模式,體驗到了pipeline的流式構(gòu)建流程,以及通過bule ocean更清晰的展示了構(gòu)建的全過程,下面我們就jenkins pipeline相關(guān)內(nèi)容做個全面的了解。
Jenkins pipeline是什么?
Jenkins Pipeline是一套插件,支持在Jenkins中實施和集成持續(xù)交付管道。
一個持續(xù)交付(CD)管道是從用戶到版本控制軟件的自動化表達。對軟件的每一次改變(在源代碼控制中提交)都會在發(fā)布過程中經(jīng)歷一個復(fù)雜的過程。這個過程包括以可靠和可重復(fù)的方式構(gòu)建軟件,以及通過測試和部署的多個階段來推進構(gòu)建的軟件(稱為“構(gòu)建”)。
Pipeline提供了一套可擴展的工具,用于通過管道域特定語言(DSL)語法將“簡單到復(fù)雜”的交付管道使用“代碼”建模 。
Jenkins管道的定義被寫入到一個jenkinsfile的文本文件,該文件又可以被提交到項目的源代碼控制庫。這是“Pipeline-as-code”的基礎(chǔ)。將CD管道作為應(yīng)用程序的一部分進行版本控制,并像任何其他代碼一樣進行審查。
為什么使用pipeline?
Jenkins從根本上說是一個支持多種自動化模式的自動化引擎。Pipeline在Jenkins上增加了一套強大的自動化工具,支持從簡單的持續(xù)集成到全面的CD管道的用例。通過對一系列相關(guān)任務(wù)建模,用戶可以利用Pipeline的更多功能,如:
- 可維護:管道是在代碼中實現(xiàn)的,并且通常會被簽入源代碼管理,從而使團隊能夠編輯,審閱和迭代他們的交付管道。
- 可能出現(xiàn):在繼續(xù)進行管道運行之前,管道可以選擇停止并等待人員輸入或批準。
- 復(fù)雜場景:管道支持復(fù)雜的實際CD需求,包括分叉/連接,循環(huán)和并行執(zhí)行工作的能力。
- 可擴展性:Pipeline插件支持對其DSL的定制擴展 。
enkinsfile支持腳本式Scripted Pipeline和聲明式Declarative Pipeline
Scripted Pipeline
聲明式Declarative Pipeline
其中關(guān)鍵語法異同如下:
pipeline
是聲明性管道特定語法,它定義了一個包含執(zhí)行整個管道的所有內(nèi)容和指令的“塊”。
agent
是聲明式管道特定的語法,它指示Jenkins為整個管道分配執(zhí)行程序(在節(jié)點上)和工作空間。
stage
是描述此Pipeline階段的語法塊 。stage在Pipeline語法頁面上閱讀關(guān)于聲明式管道語法塊的更多信息。如所提到的上述,stage塊在腳本管道語法可選的。
steps
是聲明式管道特定語法,用于描述要在此中運行的步驟stage。
sh
是一個Pipeline 步驟(由 Pipeline:Nodes和Processes插件提供)執(zhí)行給定的shell命令。
node
是腳本化的管道特定語法,指示Jenkins在任何可用的代理/節(jié)點上執(zhí)行此管道(以及其中包含的任何階段)。這與agent聲明式管道特定語法中的效果相同。
使用Jenkinsfile的好處:
雖然用于定義管道的腳本語法和jenkinsfile類似,但通常認為在項目中定義管道Jenkinsfile并檢查源代碼管理是最佳實踐。
- 為所有分支和請求自動創(chuàng)建一個管道構(gòu)建過程。
- 管道上的代碼審查/迭代。
- 審核追蹤管道。
- Pipeline的單一真實來源,可由項目的多個成員查看和編輯
關(guān)于Blue Ocean
Blue Ocean是pipeline的可視化UI。同時他兼容經(jīng)典的自由模式的job。Jenkins Pipeline從頭開始設(shè)計,但仍與自由式作業(yè)兼容,Blue Ocean減少了經(jīng)典模式下的混亂并為團隊中的每個成員增加了清晰度。Blue Ocean的主要特點包括:
- 連續(xù)交付(CD)管道的復(fù)雜可視化,可以讓您快速直觀地理解管道狀態(tài)。
- 管道編輯器 - 通過引導(dǎo)用戶通過直觀和可視化的過程來創(chuàng)建管道,從而使管道的創(chuàng)建變得平易近人。
- 個性化以適應(yīng)團隊中每個成員的基于角色的需求。
- 在需要干預(yù)和/或出現(xiàn)問題時確定精確度。Blue Ocean顯示的標注了關(guān)鍵步驟,促進異常處理和提高生產(chǎn)力。
以上就是jenkins插件pipeline集成持續(xù)交付管道全面介紹的詳細內(nèi)容,更多關(guān)于jenkins插件pipeline集成持續(xù)交付管道的資料請關(guān)注服務(wù)器之家其它相關(guān)文章!
原文地址:http://www.kailing.pub/article/index/arcid/204.html