views:

139

answers:

2

Hello

I am about to start a new personal project. It aims to be a pretty big one so I thought it would be a good idea to keep some sort of CVS. I have also read lot of interesting stuff about unit testing and I would like to include some system that automatically builds the project and runs a series of test after each check in. The characteristics are:

  • Only one developer and one machine (just me and my computer!).
  • Include a CVS.
  • Include automated testing.
  • The software should be free (as in no-cost) and run under Linux.
  • It is going to be C++ and ANTLR based.

So far, I have set up SVN and Eclipse+CDT+ANTLR for development but I am pretty lost about the automated build+test setting. To write the tests I have been thinking in Boost.Test or UnitTest++.

So that's the source of my question. How should I set up my local test/build machine? Links to valuable tutorials are more than welcome.

Thanks.

+1  A: 

The sort of automatic process you are looking at is called continuous integration. There is software to help you with this - a good example is JetBrains TeamCity. You will also hear of people using CruiseControl, Atlassian Bamboo and so on for this.

To take full advantage of this, you may also want to look at an automated build tool like Ant or Mavenl; your continuous integration build will then use this as its build runner.

A good starting point would be the Martin Fowler page on CI or the Wikipedia one.

David M
+2  A: 

It seems that most open source continuous integration servers are built on java and does not support C++ "out-of-the-box". However there are some links you can start with (note that for running most open source continuous integration servers you need a java environment):

I personally prefer Hudson because of its simply install (no need for application server just start with java -jar hudson.war) and easy to use and quite "clever" gui. Hudson can checkout your code from SVN (or CVS) and can run a shell script or Ant file as a build script. Maybe you have to spend a few days to set up a configuration with a proper build script but I think it worth the time.

Csaba_H
+1 for Hudson here. It's a pretty awesome build engine
Jim T