RailsプロジェクトにCircleCIを導入したがGemキャッシュが効いていない時の対応方法
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
▶︎この時点のコミット
以上の対応を行った結果、キャッシュはちゃんと効くようになりました。
参考
Author And Source
この問題について(RailsプロジェクトにCircleCIを導入したがGemキャッシュが効いていない時の対応方法), 我々は、より多くの情報をここで見つけました https://qiita.com/kenz-dev/items/1e5331e13c34e13d33ac著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .