Continuous Integration with Cerberus
Enter Cerberus. Cerberus is a ruby continuous build tool that will look for checkins, update the code and run tests. It does a great job of emailing you when something breaks, but it doesn't keep emailing you every few minutes. It will give you updates on every checkin until the build is fixed. It's already caught several breakages in the first week we've used it.
While this isn't sexy code, it helps keep us running. Most importantly, it's a nice reminder for those times where you forget to add a file to svn. I would tell you how to set it up, but the existing tutorials are great. Instead, I'll give you my quick contribution.
We don't keep our database.yml files in svn, so we need a way to get them updated when a build is done. We use the rake builder, so our configuration looks like:
builder:
rake:
task: client:setup migrate test spec
The client:setup task is quite simple. It is simply:
namespace :client do desc 'Setup database.yml' task :setup do system("cp ~/.app/database.yml #{RAILS_ROOT}/config/database.yml") end end
That's it! Now if you'll excuse me, I have a flight to catch knowing that my build is safe.


