2011-01-12 55 views
18

我們的源代碼存儲在Kiln/Mercurial存儲庫中;我們使用MSBuild來構建我們的產品,並且我們有使用MSTest(Visual Studio單元測試)的單元測試。針對Mercurial/Kiln + MSBuild + MSTest的持續集成建議

實現持續集成機器(即構建機器)有哪些解決方案。

對此的要求是:

  • 一個構建應該被踢出必要時
  • 實際構建,源的最新版本之前(即代碼中,我們關心的庫已經變化了)代碼必須從我們從
  • 建庫中獲得的構建必須建立在整個產品
  • 構建必須建立所有的單元測試
  • 構建必須執行所有單元測試
  • 構建完成後必須發送成功/失敗摘要;這必須包含關於構建本身的信息,但也包括關於哪些單元測試失敗以及哪些成功的信息。
  • 摘要必須包含其中的變更是在此版本尚不是在以前成功(!)建立
  • 系統必須配置的,因此它可以從多個分支(/庫)建設。

理想情況下,該系統可以在沒有任何服務器組件的情況下在單個盒子上運行(我們的產品並不那麼大)。

目前有哪些解決方案可用?他們有什麼優點/缺點?從上面的列表中,可以做什麼和不能做什麼?

感謝

回答

5

我們的產品BuildMaster做所有的你設計所列出的東西,也有免費的,有些限量版(例如,你只能有問題跟蹤供應商的數量有限,與之集成,數據庫更改腳本打包工具不包含在免費版本中)等5個用戶或更少。

7

來自JetBrains的TeamCity,ReSharp的製造商將完成所有這些工作。您必須將其配置爲專門用於「構建產品」的含義,但您可以配置您指定的所有內容。

該軟件可以提醒您構建失敗,甚至只是提醒負責檢查構建代碼的負責人。它甚至配備了方便的網頁,您可以查看只看到自己的更改,這些更改已成功完成,哪些未完成,哪些正在執行。

由於它是分佈式產品,因此您可以使其與您的組織和產品一起成長。如果在某個時候發現您等待構建完成太多,因爲許多構建正在排隊,您可以添加更多構建代理。構建代理基本上是在附加機器上安裝的獨立客戶機程序,它們執行實際的構建配置。

它有兩種口味,專業版和企業版。專業版是免費的,可以包含多達20個構建配置,20個用戶和3個構建代理。企業版本擁有無限的用戶和構建配置,並且您還可以使用基於LDAP的安全性(認爲域驗證的用戶)。企業版還有其他一些獎勵。您也可以購買許可證更多生成代理,如果你需要比最初的3

更多的現在,如果「無服務器組件」是指你不希望它像一個web服務器,你會是很難找到能夠對你的提交做出反應的東西。

但是,如果你的意思是你不希望有安裝一個服務器操作系統,然後TeamCity的可以在Windows的工作站版本的正常工作。這並不是說你不應該考慮爲它設置一個合適的服務器,但如果這是你需要的,它將在工作站上運行。

+0

我放棄了CruiseControl for TeamCity,我的整個團隊都非常滿意這個變化。我們在項目中使用MSBuild腳本,在測試中使用NUnit。我們主要開發C++和C#應用程序 – T33C 2011-01-13 13:49:02

0

總是有BuildBot我喜歡(並貢獻了一些代碼)。在任何操作系統上安裝和運行都非常簡單,並且可以像你說的那樣執行簡單的任務,並且在需要時可以非常靈活。

什麼你可能會發現缺少的是電池,包括登錄刮削器和/或其他更多的商業CI-服務器自帶的,尤其是對企業-Y框架的報表生成器。

它的尺度也相當不錯,Mozilla和Chromium使用它,等等。

2

您所描述的是CI工具的基礎知識,因此每個CI工具都應該可以。
我用克魯斯Control.NET但竊聽與水銀,而不是乍一看非常簡單。我對此感到滿意。我想到的其他工具是Hudson,團隊建設(來自TFS)TeamCity

我還沒有嘗試過其他工具,但你可以看到優點/缺點在這裏:

編輯:我忘了提及Hudson和Cruise Control.net是開放源代碼的專業版ject,你可以很容易地寫插件和補丁到你的安裝。

EDIT²:在即將到來的1.6版ccnet(本週更改爲主幹)中,Mercurial bug似乎已修復。