From 40a08a307d19665fd0ad80a1c421e830dd940650 Mon Sep 17 00:00:00 2001 From: 4gray <4gray@users.noreply.github.com> Date: Tue, 29 Sep 2026 07:02:13 +0200 Subject: [PATCH] ci(test): install the Electron binary before the unit tests (#1749) --- .github/workflows/ci.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9401414bf..8d5906f52 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -463,6 +463,17 @@ jobs: --paginate --jq '.[] | .filename, (.previous_filename // empty)' | node tools/coverage/unit-coverage-scope.mjs --base FETCH_HEAD --github-output + # pnpm only runs build scripts for allow-listed packages + # (pnpm-workspace.yaml), so electron's postinstall never fetches + # its binary. `require('electron')` then downloads it lazily, and + # parallel Jest workers that spawn Electron race on the same + # download: one executes the half-written binary (ETXTBSY). + # Fetch it once before the Tier A suite, the only step here whose + # specs spawn Electron; install.js skips an existing binary. + - name: Install the Electron binary + if: steps.scope.outputs.run == 'true' + run: node node_modules/electron/install.js + # Jest's transform cache (TypeScript/Angular transpilation plus # coverage instrumentation, keyed by file content) is persisted # between runs. Only master pushes and maintainer dispatches save