views:

630

answers:

5

I'd like to setup a build server for unmanaged C++ code developed in Visual Studio 2005. The build server should be able to do the following:

  • Monitor a Subversion repository for code changes and schedule a build
  • Checkout code from Subversion and run unit tests
  • Provide some sort of report on build success and changes from previous build

I've initially been looking at using CruiseControl with Ant. Is there a better solution? Perhaps CruiseControl.Net, and NAnt?

A: 

I've just started using Visual Build Professional and am very impressed, You can download a fully-featured 30 day trial from here:

http://www.kinook.com/VBP/

SVN is fully supported too.

Rob
A: 

We use FinalBuilder for building our Visual Studio 2005 projects including packaging the final exes and dlls with InstallShield and putting them up on a shared server.

We also telnet out (from FinalBuilder) to a number of other platforms (Unix/Linux/OpenVMS) and start remote builds by running makefiles there.

We do not use continous build, but there is a FinalBuilder Server which handles that and comes free with the FinalBuilder Professional license.

We are very happy with FinalBuilder, it's quite easy to get up to speed with and powerful enough to solve most problems.

Ulf Lindback
+1  A: 

NAnt takes quite a bit of work to build C++ effectively. It really is a .NET build system through and through. We're building our title to four C++ platforms plus a set of .NET tools, and it took a while to bend NAnt to our needs. For example, NAnt's C++ dependency analysis is so broken that we had to write our own. And it has a lot of perf issues that we had to go hack away at it to fix.

So don't jump in with both feet on this. Do some preliminary testing to make sure it really can do what you want and get a feel for how much you'll have to modify it for C++.

Also, we're using CruiseControl.NET also for some NUnit stuff we have built into one of our tools that drives the game we're developing. Very happy with this, it was brain-dead easy to set up. Big thumbs up here.

At a previous gig I used Final Builder in the exact scenario you describe - on the build server. Local builds were done using Visual Studio. It's a pretty awesome product that I'd seriously consider if you have a little money to spend. We had nothing but good results from it.

At my current company we went with NAnt because we didn't want to buy FB for every engineer on the team. We also didn't like how FB is closed source. So we're 100% Nant and are liking it. Just took some time to bang it into shape!

Scott Bilas
We used NAnt pretty successfully as a build tool but *not* as a dependency analyser - as you said NAnt doesn't perform well in that regard. We simply used it to call out to msdev and bjam.
MattyT
A: 

We use CruiseControl.Net, and NAnt (and Subversion) and we are happy with the results.

hamishmcn
A: 

In addition to Ant CruiseControl also supports NAnt and Exec.

But if you really want to go avant-garde you could consider Rake (about: Rake, Getting Started with Rake on .Net).

Jeffrey Fredrick