寫在前面
“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.”
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?— Martin Fowler, Chief Scientist, ThoughtWorks
什么是CI
CI(Continuous Integration)是一種開發(fā)實踐专肪,要求開發(fā)者每天多次集成代碼到代碼庫。每次集成代碼都會自動構建,使得團隊可以盡早的發(fā)現(xiàn)問題并解決問題邻吞。
為什么使用CI
假設一個團隊中開發(fā)人員每天下班后對當天的代碼進行集成雏吭,等到第二天上班之后開發(fā)人員拿到集成的結果,如果有問題在第二天進行修改。這個反饋環(huán)的周期長度達到24小時熟吏,開發(fā)人員在第一天完成的工作妓雾、提交的代碼會在第二天發(fā)現(xiàn)有沖突或者測試不通過娶吞,那么第二天則需要對前一天的代碼進行修改,并在第二天的晚上繼續(xù)集成械姻,有可能集成在第三天還是無法通過妒蛇。
如果使用持續(xù)集成之后,開發(fā)人員在一天進行很多次的提交楷拳,可以很快的拿到集成結果绣夺,并進行修改再次提交。這樣快速的反饋欢揖,提高了開發(fā)人員的工作效率陶耍,進而提高了整個團隊的工作效率,團隊可以將更多的時間用在開發(fā)新功能上她混,而不是解決問題上烈钞。
持續(xù)集成還有其他的好處:
1) 告別漫長且令人緊張的集成
2)提高可視化,增加溝通
3)能夠盡快的發(fā)現(xiàn)問題坤按,并將問題解決在萌芽狀態(tài)
4)將更多的時間花在增加新功能上
5)時刻有可部署的程序
CI的常用工具
我司常用的CI工具包括Jenkins和Go CD毯欣。當然市面上還有很多常用的工具,此處不做贅述臭脓。