diff --git a/Capfile b/Capfile new file mode 100644 index 0000000..98743d1 --- /dev/null +++ b/Capfile @@ -0,0 +1,5 @@ +load 'deploy' +# Uncomment if you are using Rails' asset pipeline + # load 'deploy/assets' +Dir['vendor/gems/*/recipes/*.rb','vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) } +load 'config/deploy' # remove this line to skip loading any of the default tasks \ No newline at end of file diff --git a/config/deploy.rb b/config/deploy.rb new file mode 100644 index 0000000..556acac --- /dev/null +++ b/config/deploy.rb @@ -0,0 +1,45 @@ +$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) +require "rvm/capistrano" +require 'bundler/capistrano' +require 'capistrano_colors' + +set :application, "ascii.io" + +set :scm, :git +set :repository, "git://github.com/sickill/ascii.io.git" +set :branch, ENV["REV"] || ENV["REF"] || ENV["BRANCH"] || ENV["TAG"] || "master" + +set :domain, "ascii.io" +role :web, domain +role :app, domain +role :db, domain, :primary => true + +set :rails_env, "production" + +set :user, "asciiio" +set :use_sudo, false +set :deploy_to, "~/app" +set :keep_releases, 3 + +namespace :deploy do + task :start do ; end + task :stop do ; end + task :restart, :roles => :app, :except => { :no_release => true } do + run "#{try_sudo} touch #{File.join(current_path, 'tmp', 'restart.txt')}" + end + + desc "Symlink shared files/directories" + task :symlink_shared, :roles => :app do + cmd = "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml" + cmd << " && ln -nfs #{shared_path}/config/local.yml #{release_path}/config/local.yml" + run cmd + end + + desc "Precompile assets" + task :assets_precompile do + run "cd #{release_path}; RAILS_ENV=#{rails_env} bundle exec rake assets:precompile" + end +end + +after 'deploy:update_code', 'deploy:symlink_shared' +after 'deploy:update_code', 'deploy:assets_precompile'