EDIT 2012.03.02: updated build tool section with some other requirements. Addding premake.
EDIT 2012.03.05: updated build tool section. Focused on CMake. Added Ant + CMakeAnt.
I have a lot of small Visual C++ projects and I want to start using continuous integration for that. A lot of tools are involved in the process. I start reading articles here and there and it is hard for me to see which to tool could integrate nicely with the others. So I am looking for an already tested continuous integration workflow that could respect my needs:
Current Context
- C++/Qt applications developed with Visual Studio;
- Less than 1’000 source files;
- Small dev team;
- Small budget;
- Preferably open source/free software;
- Looking for easy to use and simple tools. No need of something heavy and “powerful”.
- Finally packages software (installers ready for download) should work for windows and OSX. Linux (most popular distributions) is a plus.
Tools needed
-
Continuous Integration Server:
Needs to be Jenkins. I know it and I like it. I could change for another one if it is really needed.
-
Source Code Management:
GIT.
-
Documentation Generator:
Doxygen.
-
Build Tool:
We will need to generate solutions and configurations for all the platforms we need to support. I have been strongly advised to use CMake for that. Ant + CMakeAnt (http://code.google.com/p/cmakeant/) seems to be a nice addition too.
-
Unit Testing Framework:
CPPunit, C++Test, Googletest?
-
Installers Builder
CPack (part of CMake seems great too).
-
Hardware:
Preferably, one single machine with VirtualBox or VMWare. is it only possible? Would it be better to use Linux for such things? Or would a MAC mini be sufficient?
So, has anyone here already built something similar? With which tools exactly?
Thanks for any comments and suggestions.
I have successfully used CMake/CTest/CPack with Jenkins, there is a CMake builder plugin available.
I found the
ctest --output-on-failureoption to be useful as the output from the test is shown in the Jenkins log on failure.I use the Boost.Test framework for testing C++, it works fine with ctest, I run it with the
-l alloption to get all the logging output when something goes wrong.