Continuous Integration ++

If you’re not doing continuous integration yet, start.  But not just for the reasons you already know about.  Do it because it’s a great way to rapidly get people testing with the latest code base.  We have a Cruise Control server set up that builds every couple of hours, with the option to force a build.  The thing we do that I want to talk about here is that we auto-deploy the latest build to a running Tomcat server.  So effectively, once a build is done:

  • we know whether the unit tests are passing
  • we know if there are any problems in the app not starting
  • we have a server that developers can try out something that was recently checked in
  • non-development folk have a quick way of seeing how that feature that was built this week looks without needing ops to update our test environment
We’re working with a vendor that is building a Chrome Extension for us that pings out api’s for pricing data.  We’re getting close to wrapping up and as always is the case, we need to make a few tweaks here and there.  If they report an error or request an additional field be passed in the JSON, we make the change, check it in, force a build and then 5 minutes later they can continue their work.  This has saved us quite a bit of time and it’s something you should consider in your own environment.
Do you have a similar set up that you use, or are there other things you do in your CI environment that are time savers?  I’d love to hear about them.