1. 認識Jenkins
1.1 Jenkins是什么?
Jenkins 是一個開源的自動化服務器,主要用于持續集成和持續部署(CI/CD)。 它由Java編寫,因此它可以在Windows、Linux和macOS等大多數操作系統上運行。 Jenkins 提供了一個易于使用的web界面,通過插件支持來擴展其功能,使得它可以與各種流行的開發工具和技術無縫集成,比如Git、Maven、Docker等。
主要功能
- 持續集成(CI):Jenkins 可以監控版本控制系統中的變化,并自動進行構建、測試,確保代碼的質量和穩定性。這有助于開發團隊更快地發現和解決問題。
- 持續部署(CD):當代碼通過所有測試后,Jenkins 可以自動部署到一臺或多臺服務器上,實現從代碼提交到產品交付的自動化流程。
- 工作流定制和編排:Jenkins 支持 Pipeline 語法,允許用戶定義和實現復雜的構建、測試和部署流程。
- 插件擴展:Jenkins 擁有龐大的插件生態,可以通過安裝插件來擴展其功能,滿足不同用戶的需求。
- Master-Slave架構:Jenkins 支持 Master-Slave 架構,Master 負責調度構建任務,Slave 負責執行這些任務。這種架構允許分布式構建,提高了資源利用率和構建效率。
使用場景
- 自動化測試:自動執行單元測試、集成測試等,快速反饋測試結果。
- 編譯和構建:自動化編譯和構建過程,保障代碼的可構建性和一致性。
- 部署應用:自動將應用部署到開發、測試或生產環境,加快交付速度。
- 環境管理:自動化管理(如創建、銷毀)開發和測試環境,提高資源使用效率。
- 任務調度:定時執行特定任務,如數據庫備份、清理日志等。
Jenkins 由于其靈活性和廣泛的社區支持,成為了開發和運維團隊中流行的DevOps工具之一。
1.2 Jenkins特點
- 開源免費:Jenkins是一個開源軟件,并且免費提供給用戶使用。
- 可擴展性:Jenkins提供了豐富的插件和擴展,可以滿足各種不同的需求。
- 易于安裝和部署:Jenkins可以在多種操作系統上運行,例如Windows、Linux、MacOS等,安裝和部署都非常簡單。
- 支持多種版本控制系統:Jenkins支持多種版本控制系統,例如Git、SVN、Mercurial等。
- 支持多種構建工具:Jenkins支持多種構建工具,例如Maven、Gradle、Ant等。
- 可視化界面:Jenkins提供了可視化的界面,用戶可以方便地查看和管理各種任務和構建。
- 自動化構建和測試:Jenkins可以自動化構建和測試代碼,可以大大提高開發效率和代碼質量。
- 支持分布式構建:Jenkins支持分布式構建,可以將任務分配給多個節點進行并行構建,提高構建速度。
- 支持持續集成和持續交付:Jenkins支持持續集成和持續交付,可以將代碼快速地交付給用戶,提高軟件交付速度。
1.3 Jenkins發展
Hudson階段:
Jenkins最初是從Hudson項目分支出來的。Hudson是一個由Sun公司開發的持續集成工具,Jenkins最初是作為Hudson的一個分支項目開始的。在這個階段,Jenkins社區的開發者主要是對Hudson進行改進和優化,添加新的功能和修復漏洞,Jenkins逐漸成為了一個獨立的項目。
社區化階段:
隨著Jenkins的發展,越來越多的開發者加入到Jenkins社區中,貢獻代碼、提供支持和分享經驗,Jenkins逐漸成為了一個真正的開源項目。在這個階段,Jenkins社區的開發者開始著重關注用戶體驗和易用性,提供更加友好的界面和更加易用的功能。
插件化階段:
Jenkins提供了豐富的插件和擴展,可以滿足各種不同的需求,這也是Jenkins最大的優勢之一。在這個階段,Jenkins社區的開發者開始著重關注可擴展性和靈活性,提供更加豐富的插件和擴展,讓用戶可以根據自己的需求自由地選擇和組合插件。
Pipeline階段:
Jenkins Pipeline是Jenkins 2.0中新增的功能,它提供了一種新的方式來定義持續交付流程,可以更加靈活地構建復雜的持續交付流程。在這個階段,Jenkins社區的開發者開始著重關注持續交付流程的可視化和自動化,提供更加靈活和可定制的持續交付流程,讓用戶可以更加輕松地構建和管理復雜的持續交付流程。
Cloud Native階段:
Jenkins X是Jenkins社區推出的一個新項目,它是一個專門用于云原生應用的持續交付工具,可以幫助開發者快速地構建、測試和部署云原生應用。在這個階段,Jenkins社區的開發者開始著重關注云原生應用的持續交付,提供更加專業和高效的持續交付解決方案,讓用戶可以更加輕松地構建和管理云原生應用的交付流程。
2. Jenkins WebUI
2.1 管理頁面
版本?Jenkins 2.401.1
?系統管理頁面包含系統管理、全局安全管理、全局工具配置、節點管理、授權管理、插件管理、系統備份管理、日志監控管理
2.2 項目管理頁面
2.3 構建輸出頁面
3. Jenkins構建
3.1 Jenkins項目類型
支持多種job類型,自由風格,流水線,maven 等等