Long story short:
grunt buildprocess 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
gem install compass
# 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
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 util after the build fails.