Checking out Hudson (can I give up CruiseControl?)


Downloading Hudson via SSH session to my build server

I don’t work for ThoughtWorks anymore. I resigned from the Buildix team. Well, I hadn’t checked into the Buildix svn repository since February 2007 anyhow. Now free to evaluate the alternatives to CruiseControl. I might stick with CruiseControl, I might not. Anyhow, tonight I had a serious look at Hudson for the first time.

Installation on my Linux server was a doddle:

sudo su –
useradd -m -d /var/spool/hudson hudson
su – hudson
nohup java -jar hudson.war –httpPort=9090 –ajp13Port=8010 > hudson.log 2>&1 &

I stuck it in /var/spool because things that generate logs should go inside /var on a Unix system. I had to override the HTTP and AJP13 (a backend Apache protocol) because I’m already running Cruise on the default ports that Hudson uses. And it’s running, if unconfigured.

The distribution as a webapp is a stroke of genius. I’ll still need to configure a servlet container for Hudson to run in. Though this might be just my peculiar issue. I don’t run services in my house if they can run on my VPS. So ideally I’d like access control via Apache. The command line above will have to do for now, though.

Hudson by default puts all of it’s working files in a ‘.hudson’ directory in the user’s home directory. I knew this, which is why I made an account with a home directory in /var above. The ‘adduser -m -d /some/path username’ command above creates a user, and it’s home directory in the directory that you specify. This is probably good enough for most cases, though packaging it for a Unix distribution might be annoying. I’ll have to look into that, too.

Next time I’ll have a look at configuring Hudson via the web interface. Does anyone else get slight class guilt from the butler metaphor?

%d bloggers like this: