Skip to content

e2e-test.yml に Playwright ブラウザのキャッシュを追加(~/.cache/ms-playwright) #712

Description

@win2cot

背景

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-nodecache: 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-keysplaywright-${{ runner.os }}- を置き、版更新時も部分復元で完全 cold を避ける(任意)
  • e2e-lint.yml はブラウザ不要のため対象外

受け入れ条件

  • e2e-test.yml~/.cache/ms-playwrightactions/cache ステップを追加(Install Playwright browsers の前)
  • キャッシュキーが e2e/package-lock.json ハッシュに連動し、Playwright バージョン更新時に invalidate される
  • キャッシュヒット時に chromium バイナリの再ダウンロードがスキップされることを run ログで確認
  • キャッシュヒット時も --with-deps(OS 依存)の解決が維持され、Playwright テストが green
  • e2e-lint.yml は変更不要であることを確認(本 Issue のスコープ外)

補足

PR 側で Closes #<本Issue番号> を埋める。

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/ci.github/workflows / CI/CD パイプライン変更priority/p2Medium。完了が望ましいが柔軟に判断可task-type:implコード実装が主体のタスク

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions