Mina: Sin caché para el agrupador

Creado en 24 sept. 2016  ·  3Comentarios  ·  Fuente: mina-deploy/mina

Estoy usando este script (se actualizó desde 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

El problema es que bundle install está descargando todas las gemas desde cero cada vez que se realiza la implementación. Funcionaba bien en la versión 0.3.

¿Alguna idea de qué estoy haciendo mal?

Comentario más útil

Ok, descubrí cuál era el problema. En la versión 1, necesitamos agregar a shared_dirs en lugar de crear una tabla completa. Así que hice:

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

y está funcionando ahora

Todos 3 comentarios

Ok, descubrí cuál era el problema. En la versión 1, necesitamos agregar a shared_dirs en lugar de crear una tabla completa. Así que hice:

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

y está funcionando ahora

¡Gracias! ¡Yo estaba teniendo el mismo problema!

No es mi intención agregar un hilo cerrado, pero también puede hacer algo como esto:

shared_dires = %w{log public/uploads node_modules}
set :shared_dirs, fetch(:shared_dirs, []).push(*shared_dirs)
¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Bilge picture Bilge  ·  9Comentarios

misteral picture misteral  ·  10Comentarios

folivi picture folivi  ·  4Comentarios

peterprabu picture peterprabu  ·  4Comentarios

Ilya-Kuchaev picture Ilya-Kuchaev  ·  4Comentarios