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.