のキャッシュヒットに値するデータが複数ある場合の探索順のメモ
複数値がヒットするにはまずrestore-keys: オプション を使用する。(keyに対するキャッシュヒットがなかった場合にキャッシュを見つけるために使われる代理キーの順序付きリスト。)
npmのキャッシュサンプル
path: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}-
公式にはこんな感じで記載されていた。
完全なマッチがあった場合、アクションはそのファイルをpathディレクトリ中のキャッシュにリストアします。 完全なマッチがなかった場合、アクションはリストアキーに対する部分一致を検索します。 アクションが部分一致を見つけた場合、最も最近のキャッシュがpathディレクトリにリストアされます。
複数ブランチ運用してる際は以下のような順番でキャッシュヒットするらしい。
- ① featureブランチのスコープ内でnpm-feature-d5ea0750というキー
- ② featureブランチのスコープ内でnpm-feature-というキー
- ③ featureブランチのスコープ内でnpm-というキー
- ④ masterブランチのスコープ内でnpm-feature-d5ea0750というキー
- ⑤ masterブランチのスコープ内でnpm-d5ea0750というキー
- ⑥ masterブランチのスコープ内でnpmというキー
基本的にはブランチ内で解決しようとするが見つからない場合はmasterブランチに見に行ってくれるとのこと。