Created
April 10, 2014 01:18
-
-
Save ricardodovalle/10335214 to your computer and use it in GitHub Desktop.
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
# | |
# Para conseguir que compile os assets locais, depois | |
# de muito quebrar a cabeça, eu achei em um post de | |
# como escrever o deploy.rb para o Capistrano 3 esta | |
# pérola, que fez tudo 'ir para frente': | |
# | |
# "Entre as inovações do Cap3 está a descontinuação | |
# da sua DSL própria e a adoção do Rake" | |
# | |
# Então precisava somente saber como trocar uma task | |
# por outra, e agora sabia onde. Tasks valem por ordem | |
# de chegada. Quem chega antes, fica, a não ser que: | |
# | |
Rake::Task['deploy:compile_assets'].clear | |
# | |
# Ok, mas qual task trocar? Usei --trace para procurar, | |
# mas dava erros loucos quando ia tentando, e em outro | |
# post mencionaram uma lista hierárquica das tasks | |
# do Capistrano quando em Rails: | |
# | |
# http://capistranorb.com/documentation/getting-started/flow/ | |
# | |
# | |
# Escrever a sintaxe do compila local -> deploy remoto | |
# foi sossegado. Neste ponto o Capistrano está excelente! | |
# | |
namespace :deploy do | |
desc 'Esta versão compila os assets localmente para o deploy' | |
task :compile_assets do | |
invoke 'deploy:assets:compile_local' | |
end | |
desc 'Compiles all assets locally' | |
task :compile_local do | |
invoke 'deploy:assets:compile_local' | |
end | |
namespace :assets do | |
task :precompile do | |
on roles(:web) do | |
invoke 'deploy:assets:compile_local' | |
end | |
end | |
desc 'Compiles all assets locally' | |
task :compile_local do | |
run_locally do | |
with rails_env: :production do | |
execute :rm, '-rf', 'public/assets/*' | |
rake 'assets:precompile' | |
within 'public/' do | |
execute :tar, 'cjf', 'assets.tar.bz2', 'assets/*' | |
end | |
end | |
end | |
on roles(:web) do | |
within "#{shared_path}/public" do | |
execute :rm, '-rf', "assets/*" | |
upload! 'public/assets.tar.bz2', "#{shared_path}/public", quiet: true | |
execute :tar, 'xf', "assets.tar.bz2" | |
execute :rm, "assets.tar.bz2" | |
end | |
end | |
run_locally do | |
execute :rm, 'public/assets.tar.bz2' | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment