CircleCIのキャッシュ機能
CircleCIではテストの実行やソースコードのビルドを行うと思います。
そのとき毎回npm installやdep ensureをしてnode_modulesやvendorを都度インストールしていたら時間がかかってしまいますよね?
CircleCIではnode_modulesやvendorをキャッシュして再利用することができます。
キャッシュの保存はsave_cacheを、キャッシュの使用はrestore_cacheを使います。
save_cache
キャッシュの仕方はすごく簡単でstepsの下の階層にsave-cacheというキーの下にkeyとキャッシュするディレクトリpathを指定するだけです。
steps: - save_cache: key: source-v1-{{ .Branch }}-{{ .Revision }}- {{ checksum Gopkg.lock }} paths: - "/vendor"
上記のサンプルではGolangで使われるバージョン管理ツールdepでインストールされる/vendorディレクトリをキャッシュするようにしています。
その際、取得するためのkeyにGopkg.lockをハッシュ値にするchecksumを使用しています。
このようにインストールする元となるファイルをチェックサムとすることで他のCIからでも同じGopkg.lockを使っていればキャッシュしたライブラリを簡単に使えるようになります。
restore_cache
キャッシュしたライブラリを使うのも非常に簡単です。使用方法はrestore_cacheの下の階層で使用したいkeyを指定するだけです。
指定されたキャッシュは保存時にあったpathの場所にそのままリストアされます。
steps: - restore_cache: key: source-v1-{{ .Branch }}-{{ .Revision }}- {{ checksum Gopkg.lock }}
まとめ
CircleCIには他にもいろんな便利な機能がたくさんあるので今後も紹介していきたいと思います。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す