I’m writing a small note on Agile build tools. It’s the last part in what became a three part PDF series on Agile software development and tools: the first went over a series of “smell tests” to judge how Agile an organization is, while the second went over some Agile automation tools. I’ll post these sometime in the near future.
Anyhow, as I say, I’m writing one on build tools: things like the old stand by, CruiseControl. While I have some technologies in question, I wanted to ask you, dear readers if you had any ideas. There’s always ant, maven, and the non-Java equivalents. But, I’ll bet several of you know of other tools and even practices. In my mind, the ultimate goal of a “build tool” in this context is to automatically perform builds at least once daily, if not more frequently and, if possible, package up the application such that the build is ready to use. Running tests is of course required as well.
So, anyone have a favorite build tool?
Tags: agile, cruisecontrol, builds
The only build tool I've found that I enthusiastically like is Jim Weirich's rake (Ruby make).
It's not Ruby exclusive or anything, it just uses Ruby as the host language for the build-tool DSL.
I think, but don't know for sure, that there are automation tools for running rake tasks regularly.
Thanks, Danno. I actually had that typed in the above examples, but then I thought, "is anyone actually using that?" Seems like so…
I've actually enjoyed using Test-autobuild autobuild.org, which had the advantage that I was able to set it up, and get going pretty quickly, rather than the sort of drag of intensive, manual work that is installing tinderbox, or many similar tools.
The Groovy/Grails community is working on a build system called Gant. With Gant, you script your build using Groovy instead of using XML. It's still experimental, but it's interesting to see how it is being developed.
Some continuous integration tools that are of interest are: continuum (from the Apache Foundation), Hudson, and DamageControl (that one is actually written in Ruby).
Another area of interest would be in the area of continuous testing. The idea is to run the relevant test cases as files are modified on the file system. ZenTest provides this functionality to Ruby on Rails developer. There is a plugin available also for Eclipse 3.1 (no support for Eclipse 3.2 though…)
One tool that I've been meaning to check out is Gant which is a Groovy based build scripting environment based on ant but using scripts rather than XML files.
http://groovy.codehaus.org/Gant
We just started to move to Cook. If you'd like, I can put you in touch with the team lead so he can walk you through why. I know that they looked at about everything out there to solve our (relatively complex) problem.
Thanks for all the quick, detailed answers! I'll have to look into each of these.
Joe: I may take you up on that offer, for sure.
Speaking generally, it seems like script-based build tools (vs. XML) are on the rise.
We have some customers who moved from CruiseControl to our Parabuild, mainly for lower cost of maintenance and build management support. Parabuild does provide continuous integration.