Mina: рдмрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреИрд╢ рдирд╣реАрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рд╕рд┐рддре░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mina-deploy/mina

рдореИрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЗрд╕реЗ рдореАрдирд╛ 0.3 рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)

require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
require 'mina/rbenv'

set :shared_dirs, %w(log public/uploads node_modules)
set :current_path, 'current'
set :term_mode, nil

task :environment do
  invoke :'rbenv:load'
end

task setup: :environment do
  command %[mkdir -p "#{fetch(:shared_path)}/log"]
  command %[chmod g+rx,u+rwx "#{fetch(:shared_path)}/log"]

  command %[mkdir -p "#{fetch(:shared_path)}/public/uploads"]
  command %[chmod g+rx,u+rwx "#{fetch(:shared_path)}/public/uploads"]
  command %[mkdir -p "#{fetch(:shared_path)}/node_modules"]
  command %[chmod g+rx,u+rwx "#{fetch(:shared_path)}/node_modules"]
end

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 :'npm_install'
    invoke :'rails:assets_precompile'
    invoke :'deploy:cleanup'

    on :launch do
      command "mkdir -p #{fetch(:current_path)}/tmp/"
      command "touch #{fetch(:current_path)}/tmp/restart.txt"
    end
  end
end

task :restart do
  command "touch #{fetch(:current_path)}/tmp/restart.txt"
end

task :logs do
  command 'echo "Contents of the log file are as follows:"'
  command "tail -f #{fetch(:current_path)}/log/#{fetch(:rails_env)}.log"
end

task :npm_install do
  command 'npm install --production'
end

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ - bundle install рд╣рд░ рдмрд╛рд░ рддреИрдирд╛рддреА рдХреЗ рдмрд╛рдж рд╕рднреА рд░рддреНрдиреЛрдВ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 0.3 рдкрд░ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдореИрдВ рдЧрд▓рдд рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдереАред рд╕рдВрд╕реНрдХрд░рдг 1 рдореЗрдВ рд╣рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рдЭрд╛_рджрд┐рд░ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддреЛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛:

set :shared_dirs, fetch(:shared_dirs, []).push('log').push('public/uploads').push('node_modules')

рдФрд░ рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдереАред рд╕рдВрд╕реНрдХрд░рдг 1 рдореЗрдВ рд╣рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рдЭрд╛_рджрд┐рд░ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддреЛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛:

set :shared_dirs, fetch(:shared_dirs, []).push('log').push('public/uploads').push('node_modules')

рдФрд░ рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ

рдзрдиреНрдпрд╡рд╛рдж! рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рдереА!

рдмрдВрдж рдзрд╛рдЧреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдРрд╕рд╛ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

shared_dires = %w{log public/uploads node_modules}
set :shared_dirs, fetch(:shared_dirs, []).push(*shared_dirs)
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

thelucid picture thelucid  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Epigene picture Epigene  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jmuheim picture jmuheim  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Ilya-Kuchaev picture Ilya-Kuchaev  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

davidhq picture davidhq  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ