At work we use Hudson Continuous Integration for our build servers because, among other reasons:
- It’s FREE!
- It runs on Windows (for our C# builds) and on Mac/Linux (for our iOS/Android builds).
- It has a web-based GUI that is MUCH easier to use than the XML-driven config used by CruiseControl.NET, which we used before switching to Hudson.
- It has a rich system of plugins for adding functionality.
- Did I mention it’s FREE?
The one nice thing about CruiseControl.NET was that because it had one complex XML configuration file, I would only edit that file in source control so that I could back out my changes if I screwed it up. Now I need a way to back up the Hudson configuration files so that if one of my build servers goes up in flames, I can get my team back in business quickly.
A good backup solution needs to be automatic and offsite, and due to the magic of distributed version control and the inherent job execution nature of Hudson, we can back up Hudson with Hudson. If this isn’t the ultimate in universe folding in on itself awesome, I don’t know what is.