我是新手来构建自动化和持续集成,但已就此主题进行了广泛的研究。
首先问题:假设我有一个非托管的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。
答案 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服务器。易于管理,强大的支持和良好的功能。