I recently wanted to make it easier for contributors to ActiveHash to test their changes against multiple versions of Rails, with multiple versions of Ruby. My stories looked like this: As a contributor I want to be able to run `bundle install`, then quickly run the suite spec suite against the latest released version of rails So that I can develop quickly using a familiar workflow As a gem maintainer I want to be able to run the spec suite against 3 different versions of ruby, each with 5 different versions of rails So that I can release the gem with confidence that I'm not going to break people's apps In this post I'll explain how I did that with a (relatively) simple shell script. The final script looks like this: #!/bin/sh set -e if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then source "$HOME/.rvm/scripts/rvm" elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then source "/usr/lo...