CCTray with Hudson
Hurrah! Eric Anderson did some research this weekend and we now have our CCTray lights and speech working again!
Back when we were using CruiseControl.java for our builds, I submitted some patches to the CC.net project to allow the CCTray application to properly control X10 build status lights, and also to support text-to-speech for announcing build status changes. We really liked having that. We had a couple of lava lamps set up in the center of the team room to show the status of our builds – that allows us to see the status of the build when we come into the room. The speech (It says things like “The Well Logs Refactor project has started building” and “The Well Logs refactor project reports Yet another successful build”) helped us stay hyper-aware of the state of things. Having a periodic announcement that a build is starting reinforces the ‘pace’ of the team.
So, when we started using Hudson for our build server, we were disappointed that the rss format it shows didn’t work with Hudson. I looked around a bit, and while Hudson has its own ‘tray’ application, it didn’t do the stuff I wanted. I spent a little time looking at Hudson source code, thinking about writing a plugin to support the CC xml format. I looked at doing another patch for CCTray to support reading the Hudson RSS or XMl or Atom feeds. But I never got very far on those projects. Getting actual project work done was always a higher priority.
But now it is working again, and there was much rejoicing in the team room this morning. In order to spread the word that Hudson does output CCTray compatible xml, I am writing this post. The magic URL to enter into CCTray is http://hudsonserver:port/cc.xml and is described more fully on the Hudson Wiki.
Here is a picture of our newest build light setup:
Yes, the build is broken! We’re creating a new smoke test at the moment, and fighting with Maven configuration. We’re also going to neaten up the cords Real Soon Now.
Here are the three X10 modules on the wall. Pretty ugly. Might be a weekend project to mount the modules inside the light fixture, so we can just have a single cord coming out.
Finally, here is a pic of the team room – we have a long rectangular room, and mounted the lights on the short wall that is off the left edge of this photo.
Next thing for me will be a much simpler patch to CCTray to support three lights in X10. Currently it only supports ‘green’ and ‘red’. I want to make it so that the yellow light also comes on while a build is in progress. So the color scheme would be:
- Green only – all builds are good, nothing in progress
- Green + Yellow – all builds are good, build in progress
- Red only – at least one build is broken, nothing currently building
- Red + Yellow – at least one build broken, build in progress.