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