CI持續集成理論知識


(1)什么是CI

What is CI?

CI就是持續集成,持續集成是一種軟件開發實踐,即團隊開發成員經常集成他們的工作,通常每個成員每天至少集成一次,也就意味着每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯、發布、自動化測試)來驗證,從而盡快地發現集成錯誤。許多團隊發現這個過程可以大大減少集成的問題,讓團隊能夠更快的開發內聚的軟件。
🐵PS:把企業中的一系列過程集成在CI平台上,可以寫好腳本,點擊執行,或者定時執行。

CD就是持續交付,是在CI的基礎進行了擴展,在CI環節完成了軟件構建和測試工作並形成了新的版本,那么接下來就要進行交付,而這里的交付並不是交付到生產環境,而是類生產環境,我們可以理解為灰度環境或者預發環境,進而接受部分真實流量的測試,如果沒有問題則通過手動的方式部署到生產環境。

CI常用的工具:Jenkins

工作流:

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

Jenkins是什么?(是一種CI工具)

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

  • 主要用於

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

      主要提供了基於版本管理工具(如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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM