令和最新版 actions-cache-s3
こんにちは、whywrite.it CI/CD班のwhywaitaです。
つくりました。
これはなに
GitHub Actionsにはactions/cacheというものがあって、ビルド時の依存関係を解決したものとかをキャッシュしておくことができます。
標準ではGitHubが提供するキャッシュサーバにファイルが保存されるんですが、さまざまな事情により自分たちが管理するストレージに置きたいことがあります。
- AWSなどでself-hosted runnerを運用している
- GitHub Enterprise Server を運用している (2022年現在未対応)
というわけでS3にアップロードするようなActionを作りました。冒頭にある whywaita/actions-cache-s3 です。
令和最新版とは
このS3にアップロードするというアイデアは別に新しいものでもないので、既にインターネットには色んな実装が存在しています。
ただ、軽く調べた限りだと ~/go/pkg/mod
のようなチルダが含まれるパスに対応していなかったりと細かい actions/cache
の機能に追従できていないことが多かったため、エイヤで作ったのが今回のものです。
沢山似たようなものがあるけど現時点だと1番新しいものに対する表現といえばそう、「令和最新版」ですね。
「令和最新版」というインスピレーションがあり感動した
— why/橘和板 (@whywaita) March 10, 2022
まとめ
以前から開発しているGitHub Actionsのrunner基盤はGHESとGHECに対応していて、「GHESだと actions/cache
使えないんですよね」という声をよく聞いていたので実装してみました。
社内だと同じチームのメンバーが提供しているAWS S3互換のオブジェクトストレージが提供されたのでその上で動作するように実装されています。具体的にはこのへん。
とはいえAWSが提供するS3でも動作する(はず)ですので、もし何らかの事情でS3にキャッシュを置きたくなった方はぜひどうぞ。