From c3ea58e9a28b649e8106d29840d2b8dbf4547259 Mon Sep 17 00:00:00 2001 From: Sergii Demianchuk Date: Thu, 23 Jul 2026 16:46:26 -0400 Subject: [PATCH] ci: skip the Playwright browser download in release builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The x64 build failed in bootstrap (getaddrinfo ENOTFOUND cdn.playwright.dev) while playwright-core's postinstall tried to download a Chromium. arm64 and the test job passed the SAME commit (v0.9.1 → 2e1b8570), so this is a transient network dependency, not a code defect — and an unnecessary one: no LevelCode build runs Playwright browser tests. playwright-core is pulled in transitively by the upstream `copilot` extension. Set PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 on the Build job env, alongside the GITHUB_TOKEN mitigation that already exists for the same class of problem (postinstall network fetches). Verified against the installed playwright-core: installBrowsersForNpmInstall() short-circuits on getAsBooleanFromENV of this exact var, so the Chromium fetch never runs. Scoped to the Build jobs, not global, so it can't affect the test job if that ever wants a browser. Note: v0.9.1 is a TAG, so this does not retroactively fix that release build (a re-run of the flaked job does); it prevents recurrence for every future release cut from develop. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/release.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index deccef0..516d22e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,6 +73,11 @@ jobs: # release days; GITHUB_TOKEN raises that to 5000/hr. Read-only default token — no extra perms needed. env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # No LevelCode build runs Playwright browser tests, but an upstream extension (copilot) pulls in + # playwright-core, whose postinstall downloads a Chromium from cdn.playwright.dev. That network hop + # flaked the x64 build (getaddrinfo ENOTFOUND) while arm64 passed the SAME commit — so skip it and + # the whole class of flake goes away. Same spirit as the GITHUB_TOKEN mitigation above. + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "1" steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4