互聯(lián)網(wǎng)軟件的開(kāi)發(fā)和發(fā)布,已經(jīng)形成了一套標準流程,最重要的組成部分就是持續集成(Continuous integration,簡(jiǎn)稱(chēng) CI)。
本文簡(jiǎn)要介紹持續集成的概念和做法。
一、概念
持續集成指的是,頻繁地(一天多次)將代碼集成到主干。
它的好處主要有兩個(gè)。
1、快速發(fā)現錯誤。每完成一點(diǎn)更新,就集成到主干,可以快速發(fā)現錯誤,定位錯誤也比較容易。
2、防止分支大幅偏離主干。如果不是經(jīng)常集成,主干又在不斷更新,會(huì )導致以后集成的難度變大,甚至難以集成。
持續集成的目的,就是讓產(chǎn)品可以快速迭代,同時(shí)還能保持高質(zhì)量。它的核心措施是,代碼集成到主干之前,必須通過(guò)自動(dòng)化測試。只要有一個(gè)測試用例失敗,就不能集成。
Martin Fowler 說(shuō)過(guò),"持續集成并不能消除 Bug,而是讓它們非常容易發(fā)現和改正。"
與持續集成相關(guān)的,還有兩個(gè)概念,分別是持續交付和持續部署。
二、持續交付
持續交付(Continuous delivery)指的是,頻繁地將軟件的新版本,交付給質(zhì)量團隊或者用戶(hù),以供評審。如果評審通過(guò),代碼就進(jìn)入生產(chǎn)階段。
持續交付可以看作持續集成的下一步。它強調的是,不管怎么更新,軟件是隨時(shí)隨地可以交付的。
三、持續部署
持續部署(continuous deployment)是持續交付的下一步,指的是代碼通過(guò)評審以后,自動(dòng)部署到生產(chǎn)環(huán)境。
原文轉自:http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html