Commit e0aa887
authored
fix(ci): upgrade @vscode/test-electron to fix macOS test failures (#1664)
The macOS job is not red yet only because its last run predates the
1.131.0 release; the same failure is already reproducing in sibling repos
(microsoft/vscode-java-test, microsoft/vscode-java-dependency,
microsoft/vscode-spring-boot-dashboard) and this repo will hit it on its
next macOS run. It downloads VS Code unpinned and is on an affected
`@vscode/test-electron`, so it has the same exposure:
Test error: Error: spawn .../Visual Studio Code.app/Contents/MacOS/Electron ENOENT
Error: Test run failed with code -2
VS Code 1.110 renamed the macOS main binary inside the app bundle from
`Electron` to the product name (`Code`), keeping a compatibility symlink
under the old name. That symlink was removed in microsoft/vscode#326502,
so every 1.110+ archive now fails to launch. The test runner does not pin
a VS Code version, so it resolves the latest release (1.131.0) and hits
this. Only macOS goes through that code path, which is why the other
platforms pass.
`@vscode/test-electron` ^2.4.1 hardcodes the old path, so the breakage
surfaced as soon as the symlink went away. 3.1.0 resolves the executable
via `CFBundleExecutable` from `Info.plist`, with a fallback to the sole
regular file in `Contents/MacOS/` and finally the legacy `Electron` name,
so both the new and pre-1.110 layouts work.
`skipLibCheck` is enabled alongside the bump. 3.1.0 ships declarations that
use the generic `Buffer<ArrayBufferLike>`, which this repo's TypeScript 4.9
and older `@types/node` cannot resolve, so the upgrade otherwise fails to
compile with `TS2315: Type 'Buffer' is not generic`. Raising `@types/node`
instead was tried and pulls in unrelated type breakage, and sibling repos
(vscode-java-dependency, vscode-spring-boot-dashboard) already set
`skipLibCheck`, so this keeps the repos consistent.
3.x declares `engines.node >= 22` while CI runs Node 20, but this is a
non-blocking `npm warn EBADENGINE`: the install succeeds, the package
loads, and it uses no Node 22 only APIs. A Node bump is therefore left out
to keep this change minimal.
Copilot-Session: 0b39911b-23b6-4180-ae96-2b6c06d2265b1 parent 2a647c3 commit e0aa887
3 files changed
Lines changed: 208 additions & 294 deletions
0 commit comments