Tuesday, March 11, 2014

Faster capistrano deploy with skipping bundler and asset precompilation

If you guys use git then you can use the following script in you deploy.rb to override the default behavior if asset pre compilation and bundle install.
namespace :bundler do
desc "Install bundles into application"
task :install, :roles => [:app] do
from = source.next_revision(current_revision)
if capture("cd #{latest_release} && #{source.local.log(from)} Gemfile Gemfile.lock | wc -l").to_i > 0
run "cd #{latest_release} && #{try_sudo} bundle install --without test"
else
logger.info "Skipping Bundle install because there were no asset changes"
end
end
end
namespace :deploy do
namespace :assets do
task :precompile, :roles => :web, :except => { :no_release => true } do
from = source.next_revision(current_revision)
if capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0
run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile}
else
logger.info "Skipping asset pre-compilation because there were no asset changes"
end
end
end
end
view raw gistfile1.rb hosted with ❤ by GitHub

1 comment:

jio said...

infonya sangat menarik...
mantap...
salam sukses...