views:

994

answers:

3

Hi

I'm new to build automation and Continuous Integration, but have done extensive research on the subject.

First the question: assuming I have an unmanaged Visual C++ .sln file, and that I can build it with MsBuild, which modern build tool should I pick which allows me to easily perform pre/post build steps?

I dont want "old" build tool like Ant, Nant, make, with its XML mess. I want something that can allow me to express freely what I want to do in a human-readble manner. Based on my research, it seems Waf, Scons, and Rake might fit the bill.

Background of my environment: My source control is Subversion. My unit test framework is GoogleTest which produces JUnit-compatible XML files. I picked JIRA for my tracking tool. I picked TeamCity for my CI server. I use Visual Build to build my .sln file.

I want to be able to write a simple build script (callable from my CI server) that would:

1) Create a CI server workspace directory.
2) Check out code from SVN. (my repos is setup to use svn:externals to pull dependencies from my other repository)
3) Run Visual Build build file to build all projects/platforms combination in .sln.
4) Run static code analysis / dynamic code analysis tools
5) Gather results from MsBuild (whether compile fail, static/dynamic code analysis warnings, or unit test fail, etc) for CI server
6) CI server logs this and also links it to JIRA.

+2  A: 

Along with compiling code, Visual Build can be used to pull source and run your analysis tools (and has a nice GUI which lets you hide any "xml mess".) Your CI server should have a method for integrating external logs into a build.

Pedro
+2  A: 

Hudson the Java build tool has a MSBuild and Nant plugin. Plugins are also avalable include fxcop and some of the funny unit testing libs you c# guys use.

I would say its the best free one available on the market. It can also invoke command line apps etc

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

Karl
+2  A: 

hi,

just for others who find this page (just like me): check out these tools for CI build server: Pulse TeamCity AnthillPro (this is very prof, but also requires a lot to learn) CruiseControl

Pulse and TeamCity can build sln with msbuild. Also has loads of nice feature and I found the best (from 10+) tools as CI server. Easy management, great support and good features.

exBuildmaster