在我的公司,我們目前正在研究加快CI構建的各種策略。我們分析了我們的構建,並確定我們受I/O瓶頸的限制。在不久的將來(〜1-2個月)我們有很多選擇來處理這個問題,但是我們真的希望看到一個改進現在。在構建服務器上使用虛擬硬盤是否明智?
我建議使用ramdisk作爲checkout和buildfile的位置。構建輸出和日誌當然會存儲在物理磁盤上。
這是一個明智的做法還是有這種方法的重大缺陷?我不是在尋找關於事物的硬件方面的答案,而是尋求常見構建系統(例如MSBuild)和虛擬硬盤之間的交互會導致任何問題,以及是否還有其他風險,我需要注意。
一個簡單的說明:我假設你正在談論夜間建造?在這種情況下,您需要從頭開始和測試中擠壓最大的構建。如果是每日構建,我建議將構建時間保持在最大5Mn,以便開發人員可以快速獲得有關潛在問題的反饋每次提交:在這種情況下,大多數情況下,執行* incremental *編譯是有用的,即只需執行svn(hg/git/etc)更新,並使用Make(或Ant,Nant等) - 編譯改變了什麼。使用一個良好的Makefile文件,它可能會顯着加快速度。只是我的0.02€:-) – 2010-08-10 05:28:40
我在這裏談論CI(在每次提交後構建)。我們已經利用了增量構建,但謝謝。 – 2010-08-10 07:43:35
@Christophe Muller,在不知道構建的環境,大小和要求的情況下做出一個總體應該是「最大值5Mn」的全面聲明是非常荒謬的。我們有一款產品可以在CI服務器上運行,並且可以在不到兩分鐘的時間內完成編譯和打包。我們有另一種產品,包括幾個.NET解決方案,幾個本地Windows服務,多個Adobe Flex項目,單元測試,代碼覆蓋,打包以及自動部署到測試機架。整個過程(並非所有過程都在每次入住時運行)超過兩個半小時*。 – 2010-08-10 14:02:43