Posts Tagged ‘hudson’

Saving Time with Hudson CI

I ran across the following blog post about Hudson CI, it makes the ridiculous claim that you can install and configure Hudson in less that 5 minutes. So, I decided to give Hudson a shot, if nothing else just to prove them wrong. Everyone knows software doesn’t ever just work and always takes 10x as long to install as you think it will.

Boy, was I wrong.

From the command line in my Ubuntu server:

$ sudo echo deb binary >> /etc/apt/sources.list
$ sudo apt-get update
$ sudo apt-get install hudson

It automatically installed the correct dependencies, then installed and started hudson. Within a few minutes, I was pointing my browser to http://localhost:8080 and configuring Hudson.

Surprised but still skeptical, I clicked through a few pages and within a few minutes Hudson was happily building and running our integration tests.

I was stunned.

I’ll admit, I’m not the world’s expert when it comes to validation or agile methods, but I’m no dummy either. And I’ve had some bad experiences with other validation platforms, bad enough to scare our whole team away from them for a while.

Our testing methodology hasn’t changed much – we still run the sanity tests by hand before each checkin, and we still run longer stress tests periodically… but Hudson has simplified our validation and made it… almost fun to find bugs.

After getting the sanity checks to run after every checkin, I set up our stress tests to automatically run every night, with longer validation runs over the weekend. No more nagging team members, no more “did you run the stress tests?”. Just checking the dashboard to find out how the tests ran.

It was so easy to configure, I went ahead and ran the sanity tests in a tight loop 100 times. That’s something I never would have done normally… but Hudson made it all too easy. And guess what? Hudson found a bug for me. When we run the sanity tests 100 times in a loop, they crash intermittently. Could be a test setup issue, could be a real bug, not sure yet. But we never would’ve found it without Hudson. Could we have found the bug by hand? Duh, of course… but we probably wouldn’t have. Having a CI tool like Hudson makes you step back and look at your validation holistically, and that’s a good thing.

The bottom line for me, what has me tickled pink and uber excited is the time I’m saving. And not just the few minutes of hassle nagging people to run the tests, or the collecting of log files and reports… no, that’s nice and every minute of development time saved is money in the bank. But Hudson now has us testing our software 24/7, continuously integrating… and my gut tells me this will add up in much larger savings down the road. The earlier we detect and fix bugs, the more money we save. And that makes me happy.

Now to be fair, there are still some things I haven’t gotten working – parallel builds elude me for the time being, and email notifications don’t work behind our proxy server (yet) – but today, so far, I’m loving Hudson. Are there other CI servers that would work fine? Probably, but who cares! Hudson is good to me so far.

It. Just. Flipping. Works.

So go download it and start using it. You’ll wonder why you waited so long.