views:

226

answers:

5

I write a lot of little projects, and I'd like to use something like TeamCity for my build server(s). My problem with just using TeamCity itself is that the Professional version of only seems to allow for, at most, 20 projects. And since these projects are generally not-sellable, the price tag for the Enterprise edition is a bit much.

The projects are written in various languages, both managed and unmanaged and for various platforms (user- and kernel-land in both Windows and *nix).

The features that I'm looking for:

  • To be able to manage projects for the multiple platforms that I support.
  • Integration with Subversion repositories.
  • For the Windows projects, I'd really like to just be able to point the software at my solution file (and not have to resort to building a series of commands that invoke cl or similar). (Bonus points)

Could someone suggest an alternative that would also work?

Update: Hudson looks pretty great. I just installed it on an Ubuntu box, is there a nice way for it to build my Windows projects? TeamCity does that whole build-agent thing, is there something similar with Hudson?

Thanks Again!

+3  A: 

Team City has an Open Source licensing option if that is what you mean by non-sellable. If not, look at Hudson.

EDIT: Here are the instructions for running a slave on Windows.

Yishai
This sounds great, but I don't think I meet all of the criteria. Specifically, the bit about an active community and so forth.
mrduclaw
@Yishai, thanks!
mrduclaw
+1  A: 

CruiseControl is quite nice. For .net, check CruiseControl.net. For Ruby, CruiseControl.rb

Chuck
+1  A: 

You can try Hudson or Crusie Control. We are moving from CC.Net to Hudson.

Geoff
+1  A: 

We use CruiseControl.NET. It's a bit hard to configure comparing to TeamCity (you'll need to edit XML config, which is error-prone), but has a lot of features.

It can work with SVN (and many other VCSs), detect changes and start build automatically, you can set it up to run tests, display coverage analysis etc.

And it supports many build engines, such as NAnt and MSBuild (which is used in Visual Studio for its solutions). Note that for VC++ projects to build you'll need to deploy Windows SDK on your build machine.

It is also very simple to write plugins if necessary.

elder_george
Will this work for my *nix projects, as well?
mrduclaw
It depends on what language/lib you are using. It is possible to run CC.NET on mono, although there're some gotachs (see here http://groups.google.com.ag/group/ccnet-devel/browse_thread/thread/f91e72c9bbfebde7/ce39b7c8d0a6dcce). Otherwise you'll have to rely on ability of compiler you use to make cross-compilation. There should be no problems with .NET or Java, but I say nothing about cross-compiling with gcc (although it is supported).
elder_george
+1  A: 

To answer the "Update:" portion of the question, yes, Hudson supports build agents:

"Hudson supports the "master/slave" mode, where the workload of building projects are delegated to multiple "slave" nodes, allowing single Hudson installation to host a large number of projects, or provide different environments needed for builds/tests."

-- http://wiki.hudson-ci.org/display/HUDSON/Distributed+builds

Tim Lewis
And here's info on running it as a Window's service:http://wiki.hudson-ci.org/display/HUDSON/Installing+Hudson+as+a+Windows+service
Tim Lewis