1、Jenkins Pipeline總體介紹
- Pipeline,簡而言之,就是一台運行於Jenkins上的工作流框架,將原本獨立運行於單個或者多個節點的任務連接起來,實現單個任務難以完成的復雜流程編排與可視化。
- Pipeline是Jenkins2.X最核心的特性,幫助Jenkins實現從CI到CD與DevOps的轉變。
- 詳細介紹可見https://jenkins.io/2.0
2、什么是Jenkins Pipeline
- Jenkins Pipeline是一組插件,讓Jenkins可以實現持續交付管道的落地和實施。
- 持續交付管道(CD Pipeline)是將軟件從版本控制階段到交付給用戶或客戶的完整過程的自動化表現。
- Pipeline提供了一組可擴展的工具,通過Pipeline Domain Specific Language(DSL)syntax可以達到Pipeline as Code的目的
- Pipeline as Code: Jenkinsfile 存儲在項目的源代碼庫
3、Jenkins Pipeline核心概念
- Stage
-
階段,一個Pipeline可以划分為若干個Stage,每個Stage代表一組操作,如:“Build”,“Test”, "Deploy"。
-注意,Stage是一個邏輯分組的概念,可以跨多個Node。
- Node
- 節點,一個Node就是一個Jenkins節點,或者是Master,或者是Agent。是執行Step的具體運行環境 。
- Step
-
步驟,Step是 最基本的操作單元,小到創建一個目錄,大到構建一個Docker鏡像,由各類 Jenkins Plugin提供,例如:sh 'make'
4、為什么要用Pipeline?
- 代碼(Code): Pipeline以代碼的形式實現,通常被檢入源代碼控制,是團隊能夠編輯,審查 和迭代其CD流程。
- 可持續性(Durable):Jenkins重啟或者中斷后都不會影響Pipeline Job。
- 可停頓(Pausable):Pipeline可以選擇停止並等待人工輸入或者批准,然后再繼續Pipeline運行。
- 多功能(Versatile):Pipeline支持實現現實世界的復雜CD要求,包括fork/join子進程,循環和並行執行工作的能力。
- 可拓展(Extensible):Pipeline插件支持其DSL的自定義擴展及與其他插件集成的多個選 項。