Whiskey Disk -- embarrassingly fast deployments. A very opinionated deployment tool, designed to be as fast as technologically possible. Should work with any project which is git hosted, not just Ruby / Ruby on Rails projects. Allows for local deploys as well as remote. Dependencies: rake, ssh, git, rsync on the deployment target server (affectionately referred to as the "g-node" by vinbarnes), bash-ish shell on deployment server. Assumptions: - you have a Rakefile in the top directory of your project's checkout - you are deploying over ssh - your project is managed via git - you have a second git repository for per-application/per-environment configuration files - you are comfortable defining post-setup and post-deployment actions with rake Installation: As a gem: % gem install whiskey_disk As a rails plugin: % script/plugin install git://github.com/flogic/whiskey_disk.git Configuration: - look in the examples/ directory for sample configuration files - main configuration is in /config/deploy.yml - per-environment configurations can be stored in /config/deploy-.yml - config files are YAML, with a section for each environment. Known config file settings (if you're familiar with capistrano and vlad these should seem eerily familiar):: - domain: host on which to deploy (this is an ssh connect string) - deploy_to: path to which to deploy main application - repository: git repo path for main application - branch: git branch to deploy from main application git repo - deploy_config_to: where to deploy the configuration repository - config_repository: git repository for configuration files - project: project name (used to compute path in configuration checkout) - rake_env: hash of environment variables to set when running post_setup and post_deploy rake tasks - defining a deploy::post_setup rake task (e.g., in lib/tasks/ or in your project's Rakefile) will cause that task to be run at the end of deploy:setup - defining a deploy::post_deploy rake task (e.g., in lib/tasks/ or in your project's Rakefile) will cause that task to be run at the end of deploy:now Running: - rake deploy:setup to= (e.g., "staging", "production", etc.) - rake deploy:now to= Resources: - http://github.com/blog/470-deployment-script-spring-cleaning - http://github.com/mislav/git-deploy - http://toroid.org/ams/git-website-howto