Is it possible to automatically precompile my assets in a Rails app before pushing out to Heroku? I always forget to do it, so it would be nice if when I typed git push heroku master
, it would first run rake assets:precompile ; git commit add . ; git commit -a -m "Precompile."
, or something to that effect.
Has anyone achieved such a solution? Possibly without hooks? Though I suspect that is the only way.
You could always alias
heroku
or something similar torake assets:precompile ; git commit add . ; git commit -a -m "Precompile." ; git push heroku master
in your bash profile ieI finally figured this out. I was indeed on the Cedar stack. The problem was that I had checked my
public
directory into Git, and when I pushed to Heroku, it realized thatpublic
existed, and thus assumed I precompiled. Runninggit rm -r public
and addingpublic/**
to my.gitignore
, then pushing, fixes the problem.It sounds like you might not be on Heroku's Cedar Stack? If you're using the asset pipeline (Rails -v >= 3.1), cedar provides three options for compiling assets.
From the docs:
On the cedar stack, it will do this during slug compilation. I recommend that.
I've created a gem that run as daemon and automatically pull changes from a Git repo, precompiles assets, commit and push back.
https://github.com/nectify/rails-precompile2git/