背景
ADR-0023 で導入した E2E 基盤(#535)の e2e-test.yml は、Install Playwright browsers ステップで npx playwright install --with-deps chromium を毎 run 実行し、chromium バイナリ(~130–170MB)をフルダウンロードしている。Gradle(gradle/actions/setup-gradle)と npm(actions/setup-node の cache: npm)は既にキャッシュが効いているが、Playwright ブラウザだけキャッシュ漏れになっている。
方針
actions/cache で ~/.cache/ms-playwright を Playwright バージョン連動キーでキャッシュし、ヒット時はブラウザバイナリの再ダウンロードをスキップする。OS 依存(--with-deps の apt パッケージ)はキャッシュ対象外のため、キャッシュヒット時もブラウザ起動に必要な OS 依存解決は維持する(playwright install-deps chromium 等で担保)。
- キャッシュキー:
playwright-${{ runner.os }}-${{ hashFiles('e2e/package-lock.json') }}(lockfile に Playwright バージョンが固定されるため、版更新で自然に invalidate)
restore-keys に playwright-${{ runner.os }}- を置き、版更新時も部分復元で完全 cold を避ける(任意)
- e2e-lint.yml はブラウザ不要のため対象外
受け入れ条件
補足
PR 側で Closes #<本Issue番号> を埋める。
背景
ADR-0023 で導入した E2E 基盤(#535)の
e2e-test.ymlは、Install Playwright browsersステップでnpx playwright install --with-deps chromiumを毎 run 実行し、chromium バイナリ(~130–170MB)をフルダウンロードしている。Gradle(gradle/actions/setup-gradle)と npm(actions/setup-nodeのcache: npm)は既にキャッシュが効いているが、Playwright ブラウザだけキャッシュ漏れになっている。方針
actions/cacheで~/.cache/ms-playwrightを Playwright バージョン連動キーでキャッシュし、ヒット時はブラウザバイナリの再ダウンロードをスキップする。OS 依存(--with-depsの apt パッケージ)はキャッシュ対象外のため、キャッシュヒット時もブラウザ起動に必要な OS 依存解決は維持する(playwright install-deps chromium等で担保)。playwright-${{ runner.os }}-${{ hashFiles('e2e/package-lock.json') }}(lockfile に Playwright バージョンが固定されるため、版更新で自然に invalidate)restore-keysにplaywright-${{ runner.os }}-を置き、版更新時も部分復元で完全 cold を避ける(任意)受け入れ条件
e2e-test.ymlに~/.cache/ms-playwrightのactions/cacheステップを追加(Install Playwright browsersの前)e2e/package-lock.jsonハッシュに連動し、Playwright バージョン更新時に invalidate される--with-deps(OS 依存)の解決が維持され、Playwright テストが green補足
.github/workflows/*.yml編集を含むため claude-automation=不適用(case B 人手 PR)。PR 側で
Closes #<本Issue番号>を埋める。