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.
July 13th, 2009 at 3:08 pm
d’you have any idea of how to get a project parameters from the “This build is parameterized” option using groovy? Haven’t had luck ’til now.
Also I’d like to get the Environment variables from Hudson General Settings
Thank you.
Regards