持續整合 - 概述



持續整合最初於 2000 年隨著名為 **Cruise Control** 的軟體而引入。多年來,持續整合已成為任何軟體組織的關鍵實踐。這是一種開發實踐,要求開發團隊確保對軟體程式進行的每次程式碼更改都進行構建和後續測試。這個概念旨在解決構建生命週期中後期出現問題的難題。持續整合旨在確保程式碼更改和構建永遠不會孤立地進行,而不是讓開發人員孤立地工作並且整合不足。

為什麼選擇持續整合?

持續整合已成為任何軟體開發流程中不可或缺的一部分。持續整合流程幫助軟體開發團隊解答以下問題。

  • 所有軟體元件是否都能按預期協同工作?– 有時系統可能會變得非常複雜,每個元件都有多個介面。在這種情況下,始終至關重要地確保所有軟體元件都能彼此無縫協同工作。

  • 程式碼是否過於複雜而無法整合?– 如果持續整合流程持續失敗,則可能表明程式碼過於複雜。這可能是一個訊號,需要應用正確的設計模式來使程式碼更簡單、更易於維護。

  • 程式碼是否符合既定的編碼標準?– 大多數測試用例始終會檢查程式碼是否符合正確的編碼標準。透過在自動化構建後進行自動化測試,這是一個檢查程式碼是否滿足所有期望的編碼標準的好時機。

  • 自動化測試涵蓋了多少程式碼?– 如果測試用例沒有涵蓋程式碼所需的函式,那麼測試程式碼毫無意義。因此,始終最佳實踐是確保編寫的測試用例應涵蓋應用程式的所有關鍵場景。

  • 最新更改後所有測試是否都成功?– 如果測試失敗,則繼續部署程式碼毫無意義,因此這是一個檢查程式碼是否已準備好進入部署階段的好時機。

工作流程

下圖快速展示了整個持續整合工作流程在任何軟體開發專案中的工作方式。我們將在後續章節中詳細介紹。

Workflow

因此,根據上述工作流程,持續整合流程通常是這樣工作的。

  • 首先,開發人員將程式碼提交到版本控制儲存庫。同時,整合構建機器上的持續整合伺服器輪詢原始碼儲存庫以查詢更改(例如,每隔幾分鐘)。

  • 提交發生後不久,持續整合伺服器檢測到版本控制儲存庫中發生了更改,因此持續整合伺服器從儲存庫中檢索程式碼的最新副本,然後執行構建指令碼,該指令碼整合軟體

  • 持續整合伺服器透過電子郵件將構建結果傳送給指定的專案成員,從而生成反饋。

  • 如果該專案的構建透過,則執行單元測試。如果測試成功,則程式碼即可部署到暫存伺服器或生產伺服器。

  • 持續整合伺服器繼續輪詢版本控制儲存庫中的更改,整個過程重複。

廣告