Skip to content

feat: install win32-x64 binary on win32-arm64 platform #31784

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

8 changes: 8 additions & 0 deletions cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
<!-- See the ../guides/writing-the-cypress-changelog.md for details on writing the changelog. -->
## 14.5.0

_Released 6/17/2025 (PENDING)_

**Features:**

- Install Cypress `win32-x64` binary on Windows `win32-arm64` systems. Cypress runs in emulation. Addresses [#30252](https://github.com/cypress-io/cypress/issues/30252).

## 14.4.1

_Released 6/3/2025_
Expand Down
6 changes: 6 additions & 0 deletions cli/lib/tasks/download.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@ const prepend = (arch, urlPath, version) => {
const platform = os.platform()
const pathTemplate = util.getEnv('CYPRESS_DOWNLOAD_PATH_TEMPLATE', true)

if ((platform === 'win32') && (arch === 'arm64')) {
debug(`detected platform ${platform} architecture ${arch} combination`)
arch = 'x64'
debug(`overriding to download ${platform}-${arch} instead`)
}

return pathTemplate
? (
pathTemplate
Expand Down
2 changes: 1 addition & 1 deletion cli/lib/tasks/install.js
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ const downloadAndUnzip = ({ version, installDir, downloadDir }) => {

const validateOS = () => {
return util.getPlatformInfo().then((platformInfo) => {
return platformInfo.match(/(win32-x64|linux-x64|linux-arm64|darwin-x64|darwin-arm64)/)
return platformInfo.match(/(win32-x64|win32-arm64|linux-x64|linux-arm64|darwin-x64|darwin-arm64)/)
})
}

Expand Down