github actionで独自Gemをbundle installさせないでなんとかやり過ごす方法
GithubActionでCIサーバを構築している時で、その会社でしか使われていないGemがあった場合、GithubActionから呼び出すとIP制限がかかってそもそもライブラリーが取得できなくて詰むことがあります。GithubはIPがコロコロ変わるのでホワイトリストにIPを追加しても対応できないです。
そんな時は、ライブラリー周りのインストールやbundle installなどをまとめてイメージ化させることで対応できます。
これにはメリットが2つあります。
・何回もbuildをしなくて良くなり、高速化が期待できます。
・VPN環境で入れたライブラリーをイメージの中に入れることができ、独自ライブラリーを取得するためのソースを取得しなくて済みます。
しかし、ここで問題があります。
Github Actionにキャッシュ機能があることです。
共通基盤のライブラリーをイメージ化させて参照させるのは良いのですが、Github Actionにキャッシュがあり過去のライブラリーを参照することがあり、どうしてもうまくいかないことがあります。
しかも、キャッシュデータがあるのかもGithub Action上でわからないので苦戦しました。
GitHub Actions のキャッシュは、push
イベントと pull_request
イベントでトリガーされるワークフローのみでアクセス可能で保持容量が2Gあり、保持容量を超えると古いキャッシュから自動で削除される仕組みのようです。
なのでCIをブンブン回しているとキャッシュの容量が2Gを超えると自動的に古いキャッシュが消えて改善していくということになります。
キャッシュをクリアしていく方法はまだわからないことだらけですが、GithubActionでCIを構築できてよかったです。