Merge pull request #295 from openSUSE/review_140704_deploy_with_mina

Add Mina configuration
This commit is contained in:
Artem Chernikov 2014-07-07 16:20:30 +02:00
commit 45c4009b44
5 changed files with 46 additions and 12 deletions

View file

@ -111,6 +111,8 @@ group :development do
gem 'sqlite3'
# Use letter_opener to open mails in development
gem 'letter_opener'
# mina is a blazing fast deployment system
gem 'mina'
end
# Use rspec and capybara as testing framework

View file

@ -177,6 +177,9 @@ GEM
treetop (~> 1.4.8)
method_source (0.8.2)
mime-types (1.25.1)
mina (0.3.0)
open4
rake
mini_portile (0.6.0)
minitest (5.3.5)
multi_json (1.10.1)
@ -208,6 +211,7 @@ GEM
omniauth-openid (1.0.1)
omniauth (~> 1.0)
rack-openid (~> 1.3.1)
open4 (1.3.3)
orm_adapter (0.5.0)
paper_trail (3.0.1)
activerecord (>= 3.0, < 5.0)
@ -409,6 +413,7 @@ DEPENDENCIES
jquery-rails
jquery-ui-rails
letter_opener
mina
mysql2
omniauth
omniauth-facebook

View file

@ -1,16 +1,42 @@
namespace :paperclip do
require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
desc "Create a storage folder for Paperclip attachment in shared path"
task :create_storage do
run "mkdir -p #{shared_path}/storage"
end
set :domain, 'proxy-opensuse.suse.de'
set :port, 2214
set :user, 'osem'
set :deploy_to, '/srv/www/vhosts/opensuse.org/events'
set :repository, 'https://github.com/openSUSE/osem.git'
desc "Link the Paperclip storage folder into the current release"
task :link_storage do
run "ln -nfs #{shared_path}/storage #{release_path}/storage"
end
# 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, %w{ config/database.yml log public/system config/secrets.yml config/config.yml tmp}
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! %[touch "#{deploy_to}/shared/system"]
queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/system"]
queue %[echo "-----> Be sure to edit 'shared/config/database.yml'."]
end
before "deploy:setup", 'paperclip:create_storage'
after "deploy:update_code", "paperclip:link_storage"
desc 'Deploys the current version to the server.'
task :deploy => :environment do
deploy do
invoke :'git:clone'
invoke :'deploy:link_shared_paths'
invoke :'bundle:install'
invoke :'rails:db_migrate'
invoke :'rails:assets_precompile'
to :launch do
queue "touch #{deploy_to}/tmp/restart.txt"
end
end
end

View file

@ -29,7 +29,7 @@ Osem::Application.configure do
# config.assets.manifest = YOUR_PATH
# Specifies the header that your server uses for sending files
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.

View file

@ -115,4 +115,5 @@ Osem::Application.routes.draw do
get "/admin" => redirect("/admin/conference")
root :to => "home#index"
end