CI的英文名稱是Continuous Integration,中文翻譯為:持續集成。
CI中,開發人員將會頻繁地向主干提交代碼,這些新提交的代碼在最終合并到主干前,需要經過編譯和自動化測試流進行驗證。 持續集成(CI)是在源代碼變更后自動檢測、拉取、構建和(在大多數情況下)進行單元測試的過程。持續集成的目標是快速確保開發人員新提交的變更是好的,并且適合在代碼庫中進一步使用。CI的流程執行和理論實踐讓我們可以確定新代碼和原有代碼能否正確地集成在一起。
通俗點講就是:通過持續集成, 開發人員能夠在任何時候多次向倉庫提交作品,而不是獨立地開發每個功能模塊并在開發周期結束時一一提交。這里的一個重要思想就是讓開發人員更快更、頻繁地做到這一點,從而降低集成的開銷。 實際情況中,開發人員在集成時經常會發現新代碼和已有代碼存在沖突。 如果集成較早并更加頻繁,那么沖突將更容易解決且執行成本更低。當然,這里也有一些權衡,這個流程不提供額外的質量保障。 事實上,許多組織發現這樣的集成方式開銷更大,因為它們依賴人工確保新代碼不會引起新的 bug 或者破壞現有代碼。 為了減少集成期間的摩擦,持續集成依賴于測試套件和自動化測試。 然而,要認識到自動化測試和持續測試是完全不同的這一點很重要。
CI 的目標是將集成簡化成一個簡單、易于重復的日常開發任務, 這樣有助于降低總體的構建成本并在開發周期的早期發現缺陷。 要想有效地使用 CI 必須轉變開發團隊的習慣,要鼓勵頻繁迭代構建, 并且在發現 bug 的早期積極解決。