Last active
December 20, 2015 23:08
-
-
Save stevelacey/6209695 to your computer and use it in GitHub Desktop.
WordPress Capistrano deploy.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Project | |
set :application, "ProjectName" | |
set :repository, "git@github.com:changeme/#{application}.git" | |
set :db_dev, "database_name_dev" | |
# Tasks | |
## Standard | |
namespace :compass do | |
desc "Compile Sass" | |
task :compile do | |
run "cd #{latest_release} && compass compile -qs compressed" | |
end | |
end | |
namespace :db do | |
desc "Push database" | |
task :push do | |
run_locally "mysqldump -u root #{db_dev} | pv | ssh -C #{user}@#{domain} mysql -u #{db_user} -p#{db_password} #{db_name}" | |
end | |
desc "Pull database" | |
task :pull do | |
run_locally "ssh -C #{user}@#{domain} mysqldump -u #{db_user} -p#{db_password} --single-transaction #{db_name} | pv | mysql -u root #{db_dev}" | |
end | |
end | |
### Hooks | |
after "deploy:finalize_update", "compass:compile" | |
## WordPress | |
namespace :wordpress do | |
desc "Symlink shared uploads directory." | |
task :create_symlink do | |
run "rm -rf #{release_path}/web/content/uploads && ln -nfs #{shared_path}/uploads #{release_path}/web/content/uploads" | |
end | |
end | |
namespace :uploads do | |
desc "Pushes uploaded files." | |
task :push do | |
run_locally("rsync -avz web/content/uploads/ #{user}@#{domain}:#{shared_path}/uploads/") | |
end | |
desc "Pulls uploaded files." | |
task :pull do | |
run_locally("rsync -avz #{user}@#{domain}:#{shared_path}/uploads/ web/content/uploads/") | |
end | |
desc "Flushes locally uploaded files." | |
task :flush do | |
run_locally("rm -rf web/content/uploads/*") | |
end | |
end | |
### Hooks | |
after "deploy:create_symlink", "wordpress:create_symlink" | |
# Multi-Stage | |
set :scm, :git | |
set :git_enable_submodules, 1 | |
set :stages, %w(production stage) | |
set :default_stage, "stage" | |
require "capistrano/ext/multistage" | |
# Server | |
set :user, "changeme" | |
set :group, "www-data" | |
set :use_sudo, false | |
# Releases | |
set :keep_releases, 5 | |
after "deploy:update", "deploy:cleanup" | |
# Remote Cache | |
set :deploy_via, :remote_cache | |
set :repository_cache, "cache" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set :domain, "project-name.co.uk" | |
set :branch, "master" | |
set :deploy_to, "/var/www/#{domain}" | |
set :db_name, "project_name_live" | |
set :db_user, "project_name_live" | |
set :db_password, "live_password_not_root" | |
role :web, domain # Your HTTP server, Apache/etc | |
role :app, domain # This may be the same as your `Web` server | |
role :db, domain, :primary => true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set :domain, "stage.project-name.co.uk" | |
set :branch, $1 if `git branch` =~ /\* (\S+)\s/m | |
set :deploy_to, "/var/www/#{domain}" | |
set :db_name, "project_name_demo" | |
set :db_user, "project_name_demo" | |
set :db_password, "demo_password_not_root!" | |
role :web, domain # Your HTTP server, Apache/etc | |
role :app, domain # This may be the same as your `Web` server | |
role :db, domain, :primary => true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment