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.
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.
Hudson the Java build tool has a MSBuild and Nant plugin. Plugins are also available 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With