Spring Project CI Builds

Over the last couple of weeks, fellow i21 employee Costin Leau and I have been working on improving the Continuous Integration processes of the Spring projects. When we started, we had separate builds running in Cruise Control, Continuum, and even a custom cron job. We were having some trouble getting any of our existing tools to give us what we wanted on all of the builds, when both Costin and I independently came upon Atlassian's new product Bamboo.
In about 10 minutes we had the Spring CI build up and running. This might not sound like much, but due to its size Spring doesn't play nicely with some build servers. So you can imagine our joy when the Spring build started kicking off reliably any time Juergen checked in a change. From there it was just a matter of setting up all the rest of the Spring projects to build as well. I've got to say, having done this kind of thing for a number years, I've never had CI builds start up so easily.
I won't give a complete feature list of Bamboo here, but I want to mention a couple of things that really sealed it for us. The main thing is the incredible visibility into the projects. Using Bamboo we're easily able to keep track of build times and failure rates which allows us have an overall view of the health of the project.

If we want to dive down a bit we're able to see more detailed data about who's making changes and whether they're keeping the quality high as they do (who did you think would be making changes on Spring? :)).


But in the end, my favorite feature is one that is personal to each developer, the Bamboo dashboard. At this time, on the dashboard you can see the status of favorite builds, but also you can see how your changes are affecting the quality of the project.

If you get all of this for a 1.0 release, imagine what Bamboo has in store for the future! So if you have an interest in the quality of the Spring projects (or just a little too much time on your hands) head on over to http://build.springframework.org:8085/bamboo and take a gander. And those among you that are really observant may have noticed the RSS feeds for the builds in the first image. If you must have up to the minute information on the build status of any project, you can just subscribe there.
I'd love to hear any comments on your experiences with Bamboo, other build tools, or improvements you'd like to see in the Spring configuration management department.
Erwin Vervaet says:
Added on April 19th, 2007 at 1:33 amJust a small remark: Bamboo has some issues with IE 7, so try FireFox if you're having problems!
Christian Dupuis says:
Added on April 19th, 2007 at 1:59 amWe are using Bamboo to build Spring IDE (http://springide.org/bamboo) since it was an early beta. It runs complex Eclipse PDE builds without any problems.
I think the same about Bamboo as Ben: It is by far the easiest and most convenient CI tool out there. And it looks really nice, if that matters.
Anders says:
Added on April 19th, 2007 at 2:16 amI took a quick peek at Bamboo and it looks really good. We are using Continuum right now, and it does the job, but leaves a lot to desire. Historical data is not recorded and stuff like that.
My initial test with Bamboo was fairly good, and had little problems, but the main issue with us is all our tests that are not JUnit tests. I might do another run with Bamboo, but initially I could not get our Fitnesse tests to run. We also do CI on Watir tests, so I'm really missing a CI tool that would cover Fitnesse and Watir too.
Renaud Bruyeron says:
Added on April 19th, 2007 at 2:41 amHave you tried Hudson http://hudson.dev.java.net
it's open-source and free, has a nice UI (though not as sophisticated as Bamboo's), a plugin system, and integrates with JIRA (via a plugin) and various other things.
It is still low on the radar at the moment (it's fairly new and a one-man-show until recently), but it wipes the floor with cruisecontrol/continuum/etc. The guy who runs the show is one of the JAX* dudes from Sun and they use it to build many many projects (glassfish, all the JAX*, etc). I hear that Lucene recently switched to it.
Oh, and it supports distributed builds!
Brendan Lawlor says:
Added on April 19th, 2007 at 3:40 amThat's two bits of good news I got today:
1) I21 likes Bamboo
2) Bamboo now supports SSPI (for those of us using CVSNT)
Fate is telling me it's time to switch. I looked at Bamboo a few weeks back but it just ended in a ticket asking for SSPI support. That ticket was closed today so I'll be downloading Bamboo again.
CI has been waiting for a company like Atlassian to make something inexpensive and clean.
Ben Hale (blog author) says:
Added on April 19th, 2007 at 7:32 am[quote comment="19346"]We are using Bamboo to build Spring IDE (http://springide.org/bamboo) since it was an early beta. It runs complex Eclipse PDE builds without any problems.
I think the same about Bamboo as Ben: It is by far the easiest and most convenient CI tool out there. And it looks really nice, if that matters.[/quote]
Talk about a small world, I had no idea you all were using Bamboo as well. And after using make, ANT, and CC for many years, I can say that looking nice does matter.
Ben Hale (blog author) says:
Added on April 19th, 2007 at 7:38 am[quote post="129"]My initial test with Bamboo was fairly good, and had little problems, but the main issue with us is all our tests that are not JUnit tests.[/quote]
This certainly has been reiterated in the Bamboo forums and on the Bamboo JIRA. One of the really nice things about Bamboo (and all Atlassian projects really) is that it is plugin based. Right now, they support JUnit results and Clover results. I can't imagine that we won't start seeing results pages from other test frameworks such as FitNess and Watir, as well as coverage results from things like Cobertura and Emma.
Atlassian certainly welcomes community development of these plugins, and my own experiences toying around with the plugin framework tells me that this wouldn't be too hard to do. But in the mean time, I know that they're trying to add some important functionality elsewhere in the project and will eventually get back to expanding the plugin selection.
Ben Hale (blog author) says:
Added on April 19th, 2007 at 7:45 am[quote post="129"]Have you tried Hudson http://hudson.dev.java.net/quote
Actually we did take a look at it. It's certainly an impressive project, but in the end as you say it was a one-man show and was behind a bit in features. That being said, the distributed build functionality was very impressive and one of the things lacking from Bamboo. In our case, we don't really need distributed builds, but I know that the Atlassian is working hard on getting the same functionality into Bamboo.
In any case, I think we're starting to see quite the competition in the CI space. Between Bamboo, Team City, and Hudson a lot of innovation is coming out and it'll be exciting to see how it progresses. It's good to see such a focus on CI now, when previously there was almost none.
Slava Imeshev says:
Added on June 11th, 2007 at 8:46 pmBen,
Have you had a chance to look at our Parabuild at http://www.viewtier.com/products/parabuild.htm ?