Back in days of yore (circa 2002, I think), Mr. Gettle and I created a Development Portal. It was our home-grown continuous integration server. We wrote it because we needed a common place to create binary distribution of our software.
We just started using Hudson at Versatile. I'm really impressed. It's a snap to install and I had it building our project in no time.
Here are the features I like:
Painless Install - Just drop the hudson.war file in a servlet container, go to the Admin Page and start configuring your projects.
Great UI - Intuitive design, inline help, pretty graphs, AJAX stuff. Sold!
Email Notifications - Hudson notifies the developers of broken builds and when a build is fixed. It also sends special emails to the suspected build-breakers. The suspects are simply the developers who have committed code since the last successful build.
Multiple Projects - Hudson manages as many projects as you want. You can even set up project dependencies. With this, projects that depend on a core project are automatically rebuilt if the core project is successfully built.
Multi-Threaded Builds - You can specify how many build processes can be run concurrently, allowing you to throttle how hard the build server is pushed.
Distributed Builds - What an amazing feature. If you have a weak or overworked build server, you can specify slaves boxes to handle some or all of the load.
SCM Integration - Hudson can watch the source code repository and kick off a build when changes have been made. You can also create a CVS branch/tag right from Hudson. Sometimes creating a branch can take some time, in that case, Hudson will email when it's finished. And finally, you can view all of the source via the Hudson interface just like ViewCVS.
All that said, the Hudson website has this gem listed in the Benefits section:
No more "full rebuild" before a commit:
With Hudson, I stopped doing a rebuild before I commit. Nowadays I just commit, and let Hudson check if a build fails or not for me. Meanwhile, I move on to work on other things. If a build fails, Hudson can tell me so within a few minutes, so breaking a build for that short period of time is not really a problem. Thanks to this, I can spend my time more productively.
-- said the developer nobody wants on their team.
You lost me at Mr Gettle.
ReplyDeleteSorry. I like to alternate betwixt geek and non-geek stuff. So, if you're lucky, you might enjoy one post per month.
ReplyDeleteYou had me at "hello."
ReplyDeleteBut, I didn't say "hello."
ReplyDelete