Tarefa Capistrano para implantar ativos compilados

Se você implantar em um Amazon VPS com capistrano, poderá considerar o tempo de compilação de ativos muito longo. Em alguns casos, é mais rápido compilar os ativos localmente, mas não é uma boa prática comprometer os ativos compilados no repo e capistrano implanta a partir dele. Aqui está uma solução alternativa para isso:

  namespace :assets do
desc
"compile assets locally and upload before finalize_update"
task
:deploy do
%x[bundle exec rake assets:clean && bundle exec rake assets:precompile]
ENV
['COMMAND'] = " mkdir '#{release_path}/public/assets'"
invoke

upload
'/path/to/app/public/assets', "#{release_path}/public/assets", {:recursive => true}
end
end
after
"deploy:finalize_update", "assets:deploy"