/fast_git_deploy

Cap tasks to speed up cap deploys with git instead of symlinking (as described in http://github.com/blog/470-deployment-script-spring-cleaning)

Primary LanguageRubyMIT LicenseMIT

fast_git_deploy

fast_git_deploy is a series of cap tasks to speed up capistrano deploys by using git as the version source instead of checking out + symlinking on each release.

The process is used internally at github and is described in github.com/blog/470-deployment-script-spring-cleaning

Here’s some perf stats (taken from a while back on a very, very slow machine):

Before (with fast_remote_cache deploy strategy):

$ time cap staging deploy:update

...

real	1m56.811s
user	0m0.560s
sys	0m0.118s

After:

$ time cap staging deploy:update

...

real	0m19.987s
user	0m0.538s
sys	0m0.110s

Install it into your app:

Gemfile:

gem 'capistrano'
gem 'fast_git_deploy'

config/deploy.rb

require 'fast_git_deploy'

Switch an existing project:

cap deploy:warm

Setup a new project:

cap deploy:setup
cap deploy:cold
cap deploy