Railsプロジェクトで使用するCICDツールとしてCircleCIを導入・ドキュメントを参考にして設定ファイルを書いていましたが、キャッシュが効いていない動きを見せていました。
▼キャッシュが効いておらず、毎回bundle installをしているような動き

以下、CircleCIでbundle installのキャッシュが効いていない時の対処方法についてです。
解消方法
-
bundle config set --local pathコマンドで、Gemインストール先指定 - 今までのキャッシュを使用しないよう設定ファイルを書き換え
下記をbundle installの前に追記して、対応しました。
command: bundle config set --local path 'vendor/bundle'
Githubでも見れるようにしてあります。
- キャッシュの対象を
vender/bundleに指定しているが、そこにGemが見つからず毎回インストールが走ってしまっている(キャッシュが効いていない) -
bundle installコマンドはグローバルにGemをインストールする、プロジェクトローカルにGemたちをインストールしたいときは--path指定を入れる
以上から、CircleCI上でキャッシュがあるかどうかを確認しに行く先であるvender/bundleにGemたちがインストールされるようbundle config set --local path 'vendor/bundle'を追記。
ここまでの対応でキャッシュは効くかなと思いましたが、効きませんでした。理由としては、CircleCIの方で「すでにキャッシュファイルあるので、キャッシュ保存スキップしますわ」となってしまうから。
キャッシュ保存が実行されるよう、今までのキャッシュを使用しないように設定ファイルを書き換える対応をしました。
▼修正箇所

p
▶︎この時点のコミット
以上の対応を行った結果、キャッシュはちゃんと効くようになりました。
参考

