🐙
Github Actionsのキャッシュについて
Github Actionsのキャッシュ
GitHub Actionsではワークフローの依存関係をキャッシュすることで、毎回の実行時に必要となる依存パッケージやビルド結果を保持し、ワークフローの実行時間を削減することができます。
以下のような設定を記載するとキャッシュを利用することができます。
- name: Cache vendor
uses: actions/cache@v3
with:
path: vendor
key: go-vendor-${{ hashFiles('go.sum') }}
restore-keys: |
go-vendor-
go-
初回のワークフロー時はキャッシュが存在しないため、「Cache not found」のようなログが表示されます
Cache not found for input keys: go-vendor-5efb9c95322de5e8ce9420239b8954adb4e08550d4846a857a41bef8f7005f17, go-vendor-, go-
キャッシュが作成後のワークフローでは、キャッシュからのリストアが行われることが確認できます
Cache restored successfully
Cache restored from key: go-vendor-5efb9c95322de5e8ce9420239b8954adb4e08550d4846a857a41bef8f7005f17
キーの設定
キーは key
と restore-keys
の2種類を設定できます。
- key:キャッシュの保存と検索に利用されるキー
- restore-keys:
key
でキャッシュヒットしない場合にキャッシュの検索に利用されるキー。前方一致でキャッシュを検索。
restore-keys
はkey
で指定したキャッシュが見つからなかった場合に利用されます。
restore-keys
は複数のキーを指定することができますが、上から順に試行され、最初に一致するキャッシュが利用されます。
restore-keys
に一致するキャッシュが複数見つかった場合は、作成日が新しいものが利用されます。
キーの照合順とアクセス制限
キーは以下の順で照合されます。
- 現在のブランチを
key
で検索。 - 現在のブランチを
restore-keys
で検索。restore-keys
が複数ある場合は上から順に利用。 - リポジトリのデフォルトブランチを
key
で検索。 - リポジトリのデフォルトブランチを
restore-keys
で検索。
この照合順序に従って探索され、最初に一致するキャッシュが利用されます。
上記の照合順を見てわかるように、異なるブランチやタグで作成されたキャッシュにアクセスすることはできません。
ワークフロー実行時のブランチ用に作成されたキャッシュを、同じブランチに対する別のワークフローからアクセスしリストアすることができます。
キャッシュのクリア
キャッシュはGithubのWebページから削除することができます。
Github Actionsの「Management」セクションの「Caches」から削除が可能です。
Discussion