Ruby gems are not cached by default on the bitrise.io virtual machines. Ruby gems are installed into a location depending on the current
rbenv version. The version can be checked by running
You can get the location of this directory with
gem environment gemdir. However, it is not enough to cache this directory as
rbenv sets up link to ruby version specific gems: the whole ruby version specific directory - for example,
/Users/vagrant/.rbenv/versions/2.5.3 - has to be cached.
It is not recommended to set the value of the
$GEM_HOME Enviroment Variable, as this can result in installed gems not being found.
- Open your app’s Workflow Editor.
- Add a Script Step to your workflow.
$GEM_CACHE_PATHEnvironment Variable in the Script Step.
- script: title: Set GEM_CACHE_PATH env var inputs: - content: |- #!/bin/bash set -ex RBENV_DIR="`cd $(rbenv which ruby)/../..;pwd`" echo "Gem cache directory: $RBENV_DIR" envman add --key GEM_CACHE_PATH --value $RBENV_DIR
- Insert the Cache:Pull Step after the Git Clone but before the Android Build Steps.
- Insert the Cache:Push Step to the very end of your Workflow.
- Open the input
Cache pathsof the Step Cache:Push and add
$GEM_CACHE_PATHin a new line as an additional cache dir.
And you’re done!