Automated builds: Living the dream - No Fluff Just Stuff

Automated builds: Living the dream

Posted by: Craig Walls on March 30, 2005

For a few years, my team has dreamed about a day when we could automate our projects, including continuous integration.

Unfortunately, we were using StarTeam for both issue tracking and version control. Worse, we were using an older version of StarTeam and didn't have the budget to upgrade. CruiseControl can work with StarTeam, but not the version we have. So, our dream remained just that...a dream.

But recently, things have changed. A little over a year ago, we started using JIRA for issue tracking. JIRA is a much better issue tracking system than StarTeam and the price tag was well within our budget. Now all changes (bug fixes, enhancements, etc) come to us through JIRA.

But JIRA was only the beginning. Late last year, I installed Subversion on a machine here and started with a couple of our newer projects to test-drive it. Over time we've gradually started using Subversion more and more--and using StarTeam less and less. As of today, StarTeam is deprecated--all of our projects are stored in Subversion. We'll keep StarTeam running for awhile, but only for historic purposes.

Since we're using Eclipse, the Subclipse plugin has been handy. It's nice to be able to commit your work in the same tool where you make the changes. It's helped us to do more fine-grained commits instead of massive checkins to StarTeam. But we also use Tortoise from time to time. And we're not afraid of the command line, either.

But that's not all. I also installed CruiseControl and started automating the builds on our projects. As of today, about half of our projects are in CruiseControl (the other half are idle projects that we'll push in as activity picks up on them). Within 15 minutes of a change being checked into Subversion, a build will commence. Our QA team is notified of successful builds and all of the developers are notified of failed builds. Currently the notification is by e-mail, but I'm pricing lava lamps. :-)

All this is great, but I'm still not done. If a build in CruiseControl is successful, it goes back to Subversion and tags the revision with the CruiseControl build label. This way we can manually recreate any of the builds later, if necessary.

And, to bring this all full-circle...I've installed the Subversion JIRA plugin. As long as we mention JIRA issues (by their issue number) in our Subversion commit comments, JIRA will be updated with a note as to what changes were made in Subversion to address that issue.

Although we're humming along now, I'm sure that this is just the beginning. There's still room for additional automation and monitoring. For additional inspiration, I'm going to turn to my copy of Mike Clark's Pragmatic Project Automation.

Craig Walls

About Craig Walls

Craig Walls is a Principal Engineer, Java Champion, Alexa Champion, and the author of Spring AI in Action, Spring in Action, and Build Talking Apps. He's a zealous promoter of the Spring Framework, speaking frequently at local user groups and conferences and writing about Spring. When he's not slinging code, Craig is planning his next trip to Disney World or Disneyland and spending as much time as he can with his wife, two daughters, 1 bird and 2 dogs.

Why Attend the NFJS Tour?

  • » Cutting-Edge Technologies
  • » Agile Practices
  • » Peer Exchange

Current Topics:

  • Languages on the JVM: Scala, Groovy, Clojure
  • Enterprise Java
  • Core Java, Java 8
  • Agility
  • Testing: Geb, Spock, Easyb
  • REST
  • NoSQL: MongoDB, Cassandra
  • Hadoop
  • Spring 4
  • Cloud
  • Automation Tools: Gradle, Git, Jenkins, Sonar
  • HTML5, CSS3, AngularJS, jQuery, Usability
  • Mobile Apps - iPhone and Android
  • More...
Learn More »