持續(xù)集成
使用構(gòu)建服務(wù)器最主要的好處是實(shí)現(xiàn)持續(xù)集成。每當(dāng)檢測(cè)到代碼庫的變更,一次測(cè)試新提交的代碼的構(gòu)建就開始了。
由于可能有許多開發(fā)者在代碼庫工作,每個(gè)人使用的版本都略有區(qū)別,所以知道所有不同的變更能否一起正確工作就顯得非常重要。這被稱為集成測(cè)試。如果集成測(cè)試還遙遙無期,就存在一個(gè)不同代碼分支各自演進(jìn),合并變得不再容易的問題。這個(gè)結(jié)果通常被稱為“合并地獄”。因?yàn)楦鱾€(gè)分支大不相同,如何把開發(fā)者的本地變更合并到主干上也變得不再清晰。這種情形不是我們想要的。合并地獄的根源經(jīng)常可能令人大吃一驚:就是心理問題。為了把你的變更合并到主線,有一個(gè)心理障礙需要克服。DevOps工作的一部分就是簡化事情,降低像提交變更這種重要工作的感知成本。
持續(xù)集成上的構(gòu)建通常比開發(fā)者的本地構(gòu)建更加嚴(yán)格。這些構(gòu)建需要很長的時(shí)間來運(yùn)行,但是如今的高性能硬件已不再昂貴,我們的構(gòu)建服務(wù)器足以應(yīng)付。
如果構(gòu)建快到不至于讓人感到無聊,開發(fā)者將會(huì)對(duì)頻繁提交充滿熱情,集成問題將會(huì)更早出現(xiàn)。