2009-04-16 120 views
4

我是新來構建自動化和持續集成,但已對此主題進行了廣泛的研究。適用於Visual Studio的現代構建工具MSBuild

第一個問題:假設我有一個非託管的Visual C++ .sln文件,並且可以使用MsBuild構建它,我應該選擇哪個現代構建工具,這使我可以輕鬆地執行構建前/構建步驟?

我不希望像Ant,Nant這樣的「老」構建工具,使其XML混亂。我想要一些可以讓我自由表達我想以人類可讀的方式做什麼的東西。根據我的研究,似乎Waf,Scons和Rake可能適合這項法案。

我的環境的背景: 我的源代碼管理是Subversion。 我的單元測試框架是GoogleTest,它生成JUnit兼容的XML文件。 我爲我的追蹤工具選擇了JIRA。 我選擇了TeamCity作爲我的CI服務器。 我使用Visual Build來構建我的.sln文件。

我希望能夠(從我的CI服務器調用)編寫一個簡單的構建腳本,將:

1)創建一個CI服務器工作區目錄。
2)查看SVN代碼。 (我的回購站設置爲使用svn:externals從我的其他存儲庫中提取依賴關係)
3)運行Visual Build構建文件以在.sln中構建所有項目/平臺組合。
4)運行靜態代碼分析/動態代碼分析工具
5)的MSBuild收集結果(編譯是否失敗,靜態/動態代碼分析警告或單元測試失敗,等等),用於CI服務器
6)CI服務器日誌這並且將它鏈接到JIRA。

+0

使用MSBuild和C++項目確實是一團糟,因爲.vcproj不是像.csproj這樣的本機MSBuild格式,而是由MSBuild以特殊方式處理。 – mmmmmmmm 2009-04-16 20:20:23

回答

4

隨着編譯代碼,Visual Build可以用來拉動源代碼並運行你的分析工具(並且有一個很好的GUI,可以讓你隱藏任何「xml混亂」)。你的CI服務器應該有一個方法來集成外部日誌進入構建。

3

只是爲別人誰發現這個頁面(就像我): 檢查這些工具CI構建服務器: 脈衝 的TeamCity AnthillPro(此是非常的教授,但也需要學習很多) CruiseControl

脈衝和TeamCity可以建立與msbuild sln。還有很多不錯的功能,我發現最好的(從10+)工具作爲CI服務器。易於管理,很好的支持和良好的功能。

相關問題