CI持續集成理論知識

(1)什麼是CI

What is CI?web

CI就是持續集成,持續集成是一種軟件開發實踐,即團隊開發成員常常集成他們的工做,一般每一個成員天天至少集成一次,也就意味着天天可能會發生屢次集成。每次集成都經過自動化的構建(包括編譯、發佈、自動化測試)來驗證,從而儘快地發現集成錯誤。許多團隊發現這個過程能夠大大減小集成的問題,讓團隊可以更快的開發內聚的軟件。windows

🐵PS:把企業中的一系列過程集成在CI平臺上,能夠寫好腳本,點擊執行,或者定時執行。架構

CD就是持續交付,是在CI的基礎進行了擴展,在CI環節完成了軟件構建和測試工做並造成了新的版本,那麼接下來就要進行交付,而這裏的交付並非交付到生產環境,而是類生產環境,咱們能夠理解爲灰度環境或者預發環境,進而接受部分真實流量的測試,若是沒有問題則經過手動的方式部署到生產環境。分佈式

CI經常使用的工具:Jenkins工具

工做流:單元測試

開發->提交代碼->靜態代碼掃描(直接經過工具去檢查代碼中的錯誤)->單元測試->編譯->測試->發佈測試

Jenkins是什麼?(是一種CI工具)ui

Jenkins是一個獨立的開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。前身是Hudson,是一個可擴展的持續集成引擎。可用於自動化各類任務,如構建,測試和部署軟件插件

  • 主要用於code

    • 持續、自動地構建項目、測試軟件項目等。

      主要提供了基於版本管理工具(如CVS、VSS、SVN)感知變化天天定時的持續集成,並提供持續集成報告Email(提供豐富的插件庫)等方式通知相關負責人,其要求是須要進行日構建的項目已經編寫好全自動的項目編譯腳本(可基於Maven或Ant)。

    • 監控一些定時執行的任務。

Jenkins特色

  • 開源免費
  • 跨平臺,支持全部的平臺(Linux、mac、windows)
  • 支持分佈式的build(能夠在jenkins上建多個自動化腳本,好比一個跑冒煙測試、一個跑回歸測試)
  • web形式的可視化的管理頁面
  • 安裝配置超簡單
  • tips提示快速的幫助
  • 已經有不少的插件(好比:Email Extension、Git、GitHub、Subversion)

(2)CI的價值

  1. 減小風險

    越早發現的錯誤,修正的費用越低。

    及時檢查軟件測試的健康情況,減小發布時的風險。

    (好比:天天定時觸發自動化測試項目,自動生成報告)

  2. 減小重複性的工做

    經過自動化的持續集成能夠將編譯、部署、測試等動做都變成自動化的,無需太多人工干預。

  3. 任什麼時候間,任何地點均可以部署軟件

    利用持續集成,能夠常常對源代碼進行一些小改動,並將這些改動和其餘的代碼進行集成。若是出現問題,項目成員立刻就會被通知到。

(3)CI的架構

image-20201225224753398
相關文章
相關標籤/搜索