Created
May 18, 2016 19:01
-
-
Save awinabi/1f095ab3510a8a5f66d30a2fac24e0dd to your computer and use it in GitHub Desktop.
Mina for SD in AWS
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
require 'mina/bundler' | |
require 'mina/rails' | |
require 'mina/git' | |
require 'mina/rbenv' | |
require 'mina/unicorn' | |
# Basic settings: | |
# domain - The hostname to SSH to. | |
# deploy_to - Path to deploy into. | |
# repository - Git repo to clone from. (needed by mina/git) | |
# branch - Branch name to deploy. (needed by mina/git) | |
set :domain, '52.32.157.87' | |
set :deploy_to, '/home/ubuntu/successdart/' | |
set :repository, 'git@github.com:rubysoftware/successdart.git' | |
set :branch, 'unicorn-mina-deploy' | |
set :user, 'ubuntu' | |
set :identity_file, '/Users/Mac/keys/successdartin.pem' | |
set :forward_agent, true | |
set :port, '22' | |
set :unicorn_pid, "#{deploy_to}/shared/pids/unicorn.pid" | |
# 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/database.yml', 'log', '.env', 'config/secrets.yml'] | |
# This task is the environment that is loaded for most commands, such as | |
# `mina deploy` or `mina rake`. | |
task :environment do | |
queue %{ | |
echo "-----> Loading environment" | |
#{echo_cmd %[source ~/.bashrc]} | |
} | |
invoke :'rbenv:load' | |
# If you're using rbenv, use this to load the rbenv environment. | |
# Be sure to commit your .rbenv-version to your repository. | |
end | |
# Put any custom mkdir's in here for when `mina setup` is ran. | |
# For Rails apps, we'll make some of the shared paths that are shared between | |
# all releases. | |
task :setup => :environment do | |
queue! %[mkdir -p "#{deploy_to}/shared/log"] | |
queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/log"] | |
queue! %[mkdir -p "#{deploy_to}/shared/config"] | |
queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/config"] | |
queue! %[touch "#{deploy_to}/shared/config/database.yml"] | |
queue %[echo "-----> Be sure to edit 'shared/config/database.yml'."] | |
queue! %[touch "#{deploy_to}/shared/.env"] | |
queue %[echo "-----> Be sure to edit 'shared/.env'."] | |
queue! %[touch "#{deploy_to}/shared/config/secrets.yml"] | |
queue %[echo "-----> Be sure to edit 'shared/config/secrets.yml'."] | |
# sidekiq needs a place to store its pid file and log file | |
queue! %[mkdir -p "#{deploy_to}/shared/pids/"] | |
queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/pids"] | |
end | |
desc "Deploys the current version to the server." | |
task :deploy => :environment do | |
deploy do | |
# stop accepting new workers | |
# invoke :'sidekiq:quiet' | |
invoke :'git:clone' | |
invoke :'deploy:link_shared_paths' | |
invoke :'bundle:install' | |
invoke :'rails:db_migrate' | |
invoke :'rails:assets_precompile' | |
to :launch do | |
# invoke :'sidekiq:restart' | |
invoke :'unicorn:restart' | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment