BitriseのCache:Pushステップを利用して、Gemをキャッシュさせます。
なお、Bitriseのキャッシュの仕組みについてはこちらの記事で紹介しているので参考にしてください。
Gemをキャッシュさせる方法
こんな構成のワークフローを作成します。
Scriptステップでは以下のスクリプトを実行します。
bundle install envman add --key GEM_HOME --value $(gem environment gemdir)
bundle install
でリポジトリのGemfile
とGemfile.lock
を基にGemをインストールします。
続いて、envman
を使ってGemのインストールディレクトリパスを環境変数GEM_HOME
に登録します。
続いて、Cache:PushステップのCache pathsに$GEM_HOME
を入力します。
こうすることで、次回Cache:PullステップでGemのインストールディレクトリパスがキャッシュからダウンロードされ、Gemのインストール処理が省略されます。
キャッシュが使われるようになったか確認する
キャッシュする前のビルドのログがこちらです。
Installing...
となっていて、インストール処理が行われていることがわかります。
ステップの処理時間も1分ほどかかっていました。
キャッシュしたあとのビルドのログがこちらです。
Using...
となっているので、インストール処理が省略されていることがわかります。
ステップの処理時間も約13秒と大幅に短縮されました。