Hudson is an open source CI server that offers quite a few compelling features (in addition to its easy setup and configuration) that come in handy from time to time. For instance, Hudson offers a Groovy plug-in that facilitates executing arbitrary Groovy scripts (or code) as a part of a build.

Groovy can be quite useful for simple tasks, which when written in some other form (like an Ant script) requires a lot of plumbing– for example, recently, as a part of a CI project setup, another dependent project’s directories were becoming read-only due to an SCM feature. Consequently, a child project couldn’t write to the filesystem.
This problem was easily solved using Groovy (plus a little Ant)– a triggered build executes a small Groovy script that uses Ant’s chmod task to make target directories read-write enabled. As you can see, the fix requires 2 lines of code (which could, arguably, be reduced to one):
def ant = new AntBuilder()
ant.chmod(dir:"./ci09_i/ui/rep2/reports/", perm:"ugo+rw", includes:"**/*.*")
Hudson’s so Groovy that it’s hard to ignore this CI server as a viable option!

March 21st, 2008 at 2:35 pm
Hudson is without a doubt a fantastic CI server. Hudson’s Groovy support extends even farther than the plugin…
If you go into Manage Hudson | Script Console, you can type in arbitrary Groovy scripts for one-time immediate execution to do troubleshooting/diagnostics for your Hudson installation. This is not as part of any build, but can still be useful.