地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

キャッシュ探索順

github.com

のキャッシュヒットに値するデータが複数ある場合の探索順のメモ

複数値がヒットするにはまず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ブランチに見に行ってくれるとのこと。