Skip to content

Instantly share code, notes, and snippets.

@edavis10
Created August 12, 2011 20:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save edavis10/1142939 to your computer and use it in GitHub Desktop.
Save edavis10/1142939 to your computer and use it in GitHub Desktop.
require "bundler/capistrano"
set :application, "chiliproject"
set :repository, "git@projects.littlestreamsoftware.app.git"
set :scm, :git
set :git_enable_submodules,1
# fast_remote_cache is better but requires a plugin
set :deploy_via, :remote_cache
# set :deploy_via, :fast_remote_cache
# =============================================================================
# OPTIONAL VARIABLES
# =============================================================================
set :deploy_to, "/home/websites/projects.littlestreamsoftware.com" # defaults to "/u/apps/#{application}"
set :user, "edavis" # defaults to the currently logged in user
set :use_sudo, false
# =============================================================================
# SSH OPTIONS
# =============================================================================
ssh_options[:forward_agent] = true
default_run_options[:pty] = true
# Is sent to bundler so only production and postgres bundles are created
set :bundle_without, [:development, :test, :rmagick, :mysql, :mysql2, :sqlite]
namespace :deploy do
desc "Restarting mod_rails with restart.txt"
task :restart, :roles => :app, :except => { :no_release => true } do
run "touch #{current_path}/tmp/restart.txt"
end
[:start, :stop].each do |t|
desc "#{t} task is a no-op with mod_rails"
task t, :roles => :app do ; end
end
desc "Migrate the plugins"
task :migrate_plugins, :roles => [:app] do
run "cd #{current_path} && rake RAILS_ENV=production db:migrate_plugins"
end
end
namespace :localize do
desc "copy shared configurations to current"
task :copy_shared_configurations, :roles => [:app] do
%w[database.yml configuration.yml additional_environment.rb].each do |f|
run "ln -nsf #{shared_path}/config/#{f} #{current_path}/config/#{f}"
end
end
desc "link shared file storage to current"
task :link_shared_file_storage, :roles => [:app] do
run "ln -nsf #{shared_path}/files/ #{current_path}/files"
end
desc "link session store configuration"
task :link_session_store, :roles => [:app] do
run "ln -nsf #{shared_path}/config/session_store.rb #{current_path}/config/initializers/session_store.rb"
end
end
after "deploy:symlink", "localize:copy_shared_configurations", "localize:link_shared_file_storage", "localize:link_session_store", "deploy:cleanup"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment