I am working on a web app, hosting the source code on Github and running the app on Heroku. Everything works fine, but I have on issue I can\'t wrap my head around. Before the d
This situation is a bit unusual. But here are some ideas:
dev
folder.Create a rake
file with two tasks in it: rake deploy:production
and rake deploy:postprocess_files
. Those tasks might look something like this:
namespace :deploy do
task :production do
puts "turn on 'maintenance page' on heroku"
system "heroku maintenance:on"
puts "deploying to production"
system "git push heroku-prod master"
puts "post processing files..."
system "heroku run rake production:postprocess_files"
puts "take off maintenance page"
system "heroku maintenance:off"
puts "done"
end
task :postprocess_files do
puts "run postprocessing of files on heroku"
... add commands here to post process the files.
end
end
Then deploy to production using rake deploy:production
rather than pushing using git directly. The rake file will then:
Note that the second rake task in your file has the commands to do the post processing on your files and is invoked to run on heroku by the first rake task.
As an alternative, it's possible you may be able to extend the assets:precompile task that Heroku runs as part of each deploy. That's essentially what you're doing anyway -- preparing assets for deployment to production.