April 21, 2015
using Compass during `grunt build` on Heroku with Strider CD
Long story short:
- my
grunt build
process requires the ruby gem Compass - StriderCD runs my build process on a Heroku dyno with a multi-stack buildpack that runs nodejs, PHP, Ruby, etc
- the Compass gem isn’t installed in the buildpack by default, and the dyno’s storage is ephemeral + mostly read-only, so the gem must install in a specific directory on every build
Environment plugin setup
First, I have to set the Gem install directory to path that can actually be written to by programs executed by Strider. I set the GEM_HOME
environment variable to /tmp/gems
using Strider’s environment plugin.
Custom Scripts plugin setup
Next, here’s the code to install and use compass used in the required phases of the build
Environment phase:
gem install compass
Prepare phase:
# add compass to the path
export PATH=$PATH:/tmp/gems/bin
optional lines for debugging:
# print the version number
compass -v
# show the compass binary's path
which compass
Note that export PATH=$PATH:/tmp/gems/bin
is above grunt build
. Reverse the order and you’ll notice the grunt task can’t find compass on your machine since it isn’t added to the PATH variable until after the build fails.