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.