CircleCIを効率化するsave_cache、restore_cacheについて




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には他にもいろんな便利な機能がたくさんあるので今後も紹介していきたいと思います。

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です