适用于Visual Studio MSBuild的Modern Build工具

时间:2009-04-16 20:05:49

标签: build continuous-integration build-automation

我是新手来构建自动化和持续集成,但已就此主题进行了广泛的研究。

首先问题:假设我有一个非托管的Visual C ++ .sln文件,并且我可以使用MsBuild构建它,我应该选择哪种现代构建工具,这使我可以轻松地执行前/后构建步骤?

我不想要像Ant,Nant,make这样的“旧”构建工具,它的XML混乱。我想要的东西可以让我以人类可读的方式自由表达我想做的事情。根据我的研究,似乎Waf,Scons和Rake可能适合该法案。

我的环境背景: 我的源代码控制是Subversion。 我的单元测试框架是GoogleTest,它生成与JUnit兼容的XML文件。 我为我的跟踪工具选择了JIRA。 我为我的CI服务器选择了TeamCity。 我使用Visual Build来构建我的.sln文件。

我希望能够编写一个简单的构建脚本(可以从我的CI服务器调用):

1)创建CI服务器工作空间目录。
2)查看SVN的代码。 (我的repos设置为使用svn:externals从我的其他存储库中提取依赖项)
3)运行Visual Build构建文件,在.sln中构建所有项目/平台组合。
4)运行静态代码分析/动态代码分析工具
5)从CI服务器收集MsBuild的结果(无论是编译失败,静态/动态代码分析警告,还是单元测试失败等)
6)CI服务器记录此信息并将其链接到JIRA。

3 个答案:

答案 0 :(得分:4)

除编译代码外,Visual Build还可用于提取源代码并运行分析工具(并且有一个很好的GUI,可以隐藏任何“xml混乱”。)您的CI服务器应该有一个方法来集成外部日志到一个构建。

答案 1 :(得分:4)

Hudson Java构建工具有一个MSBuild和Nant插件。插件也可用,包括fxcop和c#guys使用的一些有趣的单元测试库。

我想说它是市面上最好的免费产品。它还可以调用命令行应用程序等

http://wiki.hudson-ci.org/display/HUDSON/Installation+and+Execution 卡尔

答案 2 :(得分:3)

只为找到此页面的其他人(就像我一样): 查看CI构建服务器的这些工具: 脉冲 TeamCity的 AnthillPro(这是非常专业,但也需要很多学习) CruiseControl

Pulse和TeamCity可以使用msbuild构建sln。还有很多不错的功能,我发现最好的(从10+以上)工具作为CI服务器。易于管理,强大的支持和良好的功能。