Continuous Build server (cc.net, hudson, bamboo, etc…) remote build experience

buildscontinuous integration

We currently use once cc.net server for our build process, which builds both .net (using msbuild & nant) and java (using maven and ant).

CC.net monitors source control, and triggers a remote build running on a separate server. CC.net then collates the results.

When we run the remote build, it typically:

  • runs nunit or junit or similar using mocked data
  • optionally runs a DB script to create a fresh database instance or restore a database from a known position.
  • runs selenium or similar to test UI
  • runs emma or ncover for code coverage
  • builds the system for various deployment environments (test, acceptance, production)

We may have several builds running at a time, some .net and some java (from different project teams).

It's quite time consuming to get the remote builds working when we set up a new project and we feel that there must be something more suited to remote builds than cc.net.

Does anyone have any experience with remote builds with continuous integration systems?
I don't really want feature lists of CI servers, I'd more appreciate hearing about how you've used them in a multi language, multi server environment.

Best Answer

Hudson (Update: in today's world, I would use Jenkins, a fork of Hudson.)

I've used hudson in both Java and .NET enterprise environments for high visibility projects (you've probably been to some of the sites). Hudson is solid from the start, but the best part is that there are lots of plugins to do just about anything you want. Hudson is highly configurable, has a great community, and is really easy to set up in a cluster environment if you need multiple builds going at once. It's my favorite CI server of all the ones I've used (CC.NET, Hudson, and TFS).

Plus, you can use the ChuckNorris plugin to have him give you the thumbs up or down.