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 rbenv version
.
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.
-
Set the
$GEM_CACHE_PATH
Environment 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 paths
of the Step Cache:Push and add$GEM_CACHE_PATH
in a new line as an additional cache dir.
And you’re done!