diff --git a/.github/guid-index.json b/.github/guid-index.json index ced0d64a..cfa567ad 100644 --- a/.github/guid-index.json +++ b/.github/guid-index.json @@ -979,7 +979,7 @@ "path": ".github/workflows/reusable-ci.yml", "guid": "reusable-ci-2025-09-24-core-workflow", "title": "Reusable CI Workflow", - "version": "1.19.2", + "version": "1.19.3", "header_path": ".github/workflows/reusable-ci.yml", "path_mismatch": false }, diff --git a/.github/workflows/reusable-ci.yml b/.github/workflows/reusable-ci.yml index b5cea650..09808772 100644 --- a/.github/workflows/reusable-ci.yml +++ b/.github/workflows/reusable-ci.yml @@ -1,7 +1,7 @@ # file: .github/workflows/reusable-ci.yml -# version: 1.19.2 +# version: 1.19.3 # guid: reusable-ci-2025-09-24-core-workflow -# last-edited: 2026-10-21 +# last-edited: 2026-10-27 name: Reusable CI Workflow @@ -975,7 +975,13 @@ jobs: dir="${FRONTEND_DIR//\'/}" dir="${dir//\"/}" cd "${dir:-.}" - sudo npx playwright install --with-deps chromium webkit + # System libraries need root; the browser binaries must NOT be installed + # with sudo. `sudo npx playwright install` writes to /root/.cache/ms-playwright + # (sudo resets HOME), but the E2E step below runs as the runner user and + # looks in ~/.cache/ms-playwright, so every test failed with + # "Executable doesn't exist". Install deps as root, browsers as the runner. + sudo env "PATH=$PATH" npx playwright install-deps chromium webkit + npx playwright install chromium webkit shell: bash - name: Run E2E tests diff --git a/changelog.d/20261027_playwright_install_user_cache.md b/changelog.d/20261027_playwright_install_user_cache.md new file mode 100644 index 00000000..1736787f --- /dev/null +++ b/changelog.d/20261027_playwright_install_user_cache.md @@ -0,0 +1,3 @@ +### Fixed + +- reusable-ci: Playwright browsers are now installed as the runner user (only the system dependencies use sudo), so the E2E step finds them in the runner cache instead of failing with "Executable doesn't exist".