Continuous Integration
Well, it all all seems pretty obvious now.. back in the days when ant was seen as pretty decent, and pursuading people to use it over make or even, heaven forbid, your IDE. The idea of CI was all just a twinkle in the eye. If you have no idea what I am on about see http://www.martinfowler.com/articles/continuousIntegration.html. But to be honest, if you dont do CI now on your project you are probably an idiot.
For the last few years I have mostly used Cruise Control, witha bit of anthill. Now don't get me wrong about this: cruisecontrol isn't bad. It's just that in an enterprise; setting it up as a resource for anyone to use is a total dog. By this I mean.. creating a new project without having to resort to ANY command line tools, and everything being available to the project builders via the web interface,
So, I read at great length the article here http://damagecontrol.codehaus.org/Continuous+Integration+Server+Feature+Matrix and played with the opensource ones a fair bit, and came to the conclusion Luntbuild is the one for me in a world where the following are required:
- Security
- I want all usernames, email addresses and groups to be delagated to LDAP
- I want to be able to CRUD the projects and their owners, email distros etc
- I want to be able to lock down the build machine so only the people I know about are making changes, but still allow anonyomous reads, if I care, to the builds
- Builds
- I want to be able to automatically support maven2 and ant, and I dont want to have to configure the damn thing from the command line, but if I chose to then I still could.
- I want the builds to be tagged back into the VCS on a successful build
- I want to see the build reports as made by the tools for every version of the build
- App server
- I want to run the thing on any app server. I like jetty, but others like weblogic,tomcat,jboss or whatever.I want a default install to just work without any messing about.
Now Luntbuild has a few pains to get over:
- You cannot modify the smtp port for sending emails.. not a big one.. but a pain none the less.
- If you want some "proper" security you need to write an acegi adaptor. That's a trivial excersise though. but the default one just about works in an standard openldap world.
Commercial Ones
Now, CI is pretty important stuff and in the enterprise there is often a good case to be made for standardising the build process, AND the continuous intergration environment. So can you get better if you pay for it?
Well the answer is yes. There are a few I like to look of greatly. they are:
TeamCity http://www.jetbrains.com/teamcity/ Just look at the UI, and the quality of their slam-dunk IDE called IDEA, and you know this has got to be good.
Bamboo http://www.atlassian.com/software/bamboo/, from Atlassian, who make confluence and jira. They do indeed know how to make things easy to use.
Gauntlett http://www.borland.com/us/products/silk/gauntlet/index.html. I have yet to have a play wih this, as Borland are being slow in integrating the company they just bought into their product line. But the groundwork looks good