From 3046e782f625f2393b4cae626c62a590efc99d41 Mon Sep 17 00:00:00 2001 From: yafeilee Date: Tue, 1 Apr 2014 22:54:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=91=E5=B8=83=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/deploy.rb | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 config/deploy.rb diff --git a/config/deploy.rb b/config/deploy.rb new file mode 100644 index 0000000..a298306 --- /dev/null +++ b/config/deploy.rb @@ -0,0 +1,85 @@ +require 'mina/bundler' +require 'mina/rails' +require 'mina/git' +require 'mina/rvm' # for rvm support. (http://rvm.io) + +set :domain, 'yafeilee.me' +set :deploy_to, '/home/ruby/wblog' +set :repository, 'git@github.com:windy/wblog.git' +set :branch, 'master' +set :app_path, "#{deploy_to}/#{current_path}" + +# Manually create these paths in shared/ (eg: shared/config/database.yml) in your server. +# They will be linked in the 'deploy:link_shared_paths' step. +set :shared_paths, ['config/mongoid.yml', 'config/application.yml', 'log', 'public', 'tmp', 'public/uploads' ] + +set :user, 'ruby' # Username in the server to SSH to. + +task :environment do + queue! %[source /usr/local/rvm/scripts/rvm] + queue! %[rvm use 2.0.0] +end + +task :setup => :environment do + ['config', 'log', 'tmp', 'public', 'public/uploads'].each do |dir| + queue! %[mkdir -p "#{deploy_to}/shared/#{dir}"] + queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/#{dir}"] + end + + ['config/mongoid.yml', 'config/application.yml'].each do |file| + queue! %[touch "#{deploy_to}/shared/#{file}"] + queue %[echo "-----> Be sure to edit 'shared/#{file}'."] + end +end + +desc "Deploys the current version to the server." +task :deploy => :environment do + deploy do + # Put things that will set up an empty directory into a fully set-up + # instance of your project. + invoke :'git:clone' + invoke :'deploy:link_shared_paths' + invoke :'bundle:install' + invoke :'rails:db_migrate' + invoke :'rails:assets_precompile' + + to :launch do + invoke :'unicorn:restart' + end + end +end + +namespace :unicorn do + set :unicorn_pid, "#{app_path}/tmp/pids/unicorn_wblog.pid" + set :start_unicorn, %{ + cd #{app_path} && unicorn -c config/unicorn/#{rails_env}.rb -E #{rails_env} -D + } + +# Start task +# ------------------------------------------------------------------------------ + desc "Start unicorn" + task :start => :environment do + queue 'echo "-----> Start Unicorn"' + queue! start_unicorn + end + +# Stop task +# ------------------------------------------------------------------------------ + desc "Stop unicorn" + task :stop do + queue 'echo "-----> Stop Unicorn"' + queue! %{ + mkdir -p "#{app_path}/tmp/pids" + test -s "#{unicorn_pid}" && kill -QUIT `cat "#{unicorn_pid}"` && rm -rf "#{unicorn_pid}" && echo "Stop Ok" && exit 0 + echo >&2 "Not running" + } + end + +# Restart task +# ------------------------------------------------------------------------------ + desc "Restart unicorn using 'upgrade'" + task :restart => :environment do + invoke 'unicorn:stop' + invoke 'unicorn:start' + end +end