Capistrano Campout

I’ve become a huge fan of Campfire as a group communication tool over the last six months, in both teams that I was part of during that time, and I’ve seen how incredibly useful it can be as a hub to track automated pieces of information as well, like GitHub’s commit integration with campfire.

So if I have GitHub commits – what about capistrano deployments? I’ve had capistrano integrated with email in my own coding projects, but email is a bit limited – having a real-time posting to capistrano would be even better.

So, inspired by the already existing and excellent projects: capistrano-mountaintop and capfire. I’ve married and extended the ideas in both with capistrano-campout.

Campout will post/speak a configurable message to a campfire room as the capistrano deploy task starts – and utilizing the EngineYard eycap logger routine, will capture the capistrano logger output to a file, and parse it for success/failure – and will post a configurable message on post-deployment success or a different message on post-deployment failure, as well as following the capistrano-mountaintop model of pasting the log to the room as well.

You can also specify sounds to amaze annoy your co-workers.

Campout includes a generator to generate the configuration files for your project as well, and includes support for loading from a campout.yml and/or a campout.local.yml ( ala rails_config ) – so that you can have shared and/or personal settings, as well as a built-in mechanism for keeping the campfire token out of open repositories.

I’m not sure that campout fits anyone’s needs other than my own, but if you use capistrano and campfire – you may want to give it, or one of the other projects a try – having deployment notifications in campfire can be incredibly useful, especially paired with other events.