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

Conversation

MikeMcC399
Copy link
Contributor

@MikeMcC399 MikeMcC399 commented May 24, 2025

Additional details

Attempting to install Cypress on a Windows arm64 system (aka WoA - Windows on Arm) causes Cypress to abort the installation and output the error message:

The Cypress App could not be installed. Your machine does not meet the operating system requirements.

Cypress does not build a binary for the Microsoft Windows arm64 architecture (win32-arm64), however Windows Arm-based PCs offers emulation for win32-x64 apps. The available x64 emulation functionality of Windows has so far not been used by Cypress.

To enable installation of the Cypress win32-x64 binary on Windows arm64 systems, opening up the possibility for Windows on Arm to provide its emulation capabilities to Cypress, two changes are made:

  1. In cli/lib/tasks/download.js if Windows on arm64 is detected, then the download is changed to use the Cypress Windows x64 binary (win32-x64) instead.
  2. In cli/lib/tasks/install.js the list of valid platforms is extended to include win32-arm64.

Steps to test

Previously tested as a patch in https://github.com/MikeMcC399/cypress-example-kitchensink/tree/use/windows-11-arm using workflow .github/workflows/chrome.yml.

Testable in branch windows-11-arm-beta using workflow .github/workflows/chrome.yml as soon as a beta binary build is available

... both using Windows 11 arm image (windows-11-arm) currently in public preview.

CircleCI does not currently offer a Windows arm platform for CI testing.

How has the user experience changed?

With this PR, users of Arm-based Windows PCs can install and run Cypress in the same way they would on an amd64-based Windows PC.

PR Tasks

@cypress-app-bot
Copy link
Collaborator

@MikeMcC399
Copy link
Contributor Author

@jennifer-shehane

It does not look like any of the CI failures are caused by the PR itself. They are more in the category of general flake.
If this PR were to cause failures it would be in the installation phases.

The full functionality of Cypress running under Windows on Arm can't actually be tested at this time, because CircleCI does not offer any Windows arm64 runner. So all that is being tested here is that it doesn't break anything else!

@jennifer-shehane jennifer-shehane removed their request for review June 3, 2025 15:48
@mschile mschile requested a review from AtofStryker June 3, 2025 15:49
Copy link
Contributor

@AtofStryker AtofStryker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good. I would like to add a github action similar to https://github.com/MikeMcC399/cypress-example-kitchensink/actions/runs/15362085426/job/43230503231 here so we have some type of test even if we cannot test it in circleCI. I might have to add that after merge though @MikeMcC399 as I would imagine it is difficult to run as a contributor.

approving the CI build to continue running

@MikeMcC399
Copy link
Contributor Author

MikeMcC399 commented Jun 5, 2025

@AtofStryker

Everything looks good.

Good to hear your positive reaction!

I would like to add a github action similar to https://github.com/MikeMcC399/cypress-example-kitchensink/actions/runs/15362085426/job/43230503231 here so we have some type of test even if we cannot test it in circleCI. I might have to add that after merge though @MikeMcC399 as I would imagine it is difficult to run as a contributor.

This seems like it would be a significant effort and it would not be in line with the rest of the Cypress' CI process using CircleCI. I didn't include anything like this in the PR for that reason and I would hold off investing effort into this at the moment.

Also the GitHub partner runner image windows-11-arm has the following issues:

  • public beta status only and current open issues are hardly being answered
  • based on old Windows 11 23H2 released in Oct 2023 (supposed to be updated in a few weeks)
  • runs on Cobalt 100 VM processor

This is not representative of current Windows 11 laptops based on Snapdragon X processors. It does not allow testing of Prism emulation that was introduced in Windows 11 24H2. Prism would be what laptop users would be using.

My suggestion is to release as-is and document it as being "preview status" level support (see PR cypress-io/cypress-documentation#6193). I would expect that those users in #30252 who have expressed a need, will take it for a spin.

image

After release, I can update testing in https://github.com/MikeMcC399/cypress-example-kitchensink and provide feedback. I would expect everything to work based on testing so far.

With some experience in the field and the prospect of an updated GitHub windows-11-arm runner image in a few weeks, the support and testing situation could be revisited.

The incentive for this PR is that all major laptop vendors have Windows 11 Pro 64 ARM in their portfolio marketed under "Copilot+ PC". For example:

approving the CI build to continue running

Again, the CircleCI failures can only be due to general flake, as there is no change made that would affect these tests. I suggest to re-run from failed.

@MikeMcC399
Copy link
Contributor Author

For official Microsoft compatibility support there is a special program

That would however need to be driven by the Cypress.io team itself. That's not something that I could pick up.

@AtofStryker
Copy link
Contributor

@AtofStryker

Everything looks good.

Good to hear your positive reaction!

I would like to add a github action similar to https://github.com/MikeMcC399/cypress-example-kitchensink/actions/runs/15362085426/job/43230503231 here so we have some type of test even if we cannot test it in circleCI. I might have to add that after merge though @MikeMcC399 as I would imagine it is difficult to run as a contributor.

This seems like it would be a significant effort and it would not be in line with the rest of the Cypress' CI process using CircleCI. I didn't include anything like this in the PR for that reason and I would hold off investing effort into this at the moment.

Also the GitHub partner runner image windows-11-arm has the following issues:

  • public beta status only and current open issues are hardly being answered
  • based on old Windows 11 23H2 released in Oct 2023 (supposed to be updated in a few weeks)
  • runs on Cobalt 100 VM processor

This is not representative of current Windows 11 laptops based on Snapdragon X processors. It does not allow testing of Prism emulation that was introduced in Windows 11 24H2. Prism would be what laptop users would be using.

I think the core issue that it isn't representative of the current arm64 windows laptops. Otherwise, I think we would be OK with deviating from the current CircleCI pattern in order to get some type of test coverage. But since it isn't, the juice isn't likely worth the squeeze. Thank you for clarifying that!

My suggestion is to release as-is and document it as being "preview status" level support (see PR cypress-io/cypress-documentation#6193). I would expect that those users in #30252 who have expressed a need, will take it for a spin.

image

After release, I can update testing in https://github.com/MikeMcC399/cypress-example-kitchensink and provide feedback. I would expect everything to work based on testing so far.

With some experience in the field and the prospect of an updated GitHub windows-11-arm runner image in a few weeks, the support and testing situation could be revisited.

That sounds like a solid plan to me!

The incentive for this PR is that all major laptop vendors have Windows 11 Pro 64 ARM in their portfolio marketed under "Copilot+ PC". For example:

approving the CI build to continue running

Again, the CircleCI failures can only be due to general flake, as there is no change made that would affect these tests. I suggest to re-run from failed.

Correct. We are on the same page here. I'll make sure we get a green run and merge it in.

@AtofStryker AtofStryker merged commit ec252f8 into cypress-io:develop Jun 5, 2025
71 checks passed
@MikeMcC399 MikeMcC399 deleted the issue-30252-install-windows-on-arm64 branch June 5, 2025 14:08
MikeMcC399 added a commit to MikeMcC399/cypress that referenced this pull request Jun 6, 2025
AtofStryker pushed a commit that referenced this pull request Jun 6, 2025
* chore: fix pre-release download for win32-arm64

follow-on fix for PR #31784

* add unit test win32-arm64 to win32-x64 for pre-release
@cypress-bot
Copy link
Contributor

cypress-bot bot commented Jun 17, 2025

Released in 14.5.0.

This comment thread has been locked. If you are still experiencing this issue after upgrading to
Cypress v14.5.0, please open a new issue.

@cypress-bot cypress-bot bot locked as resolved and limited conversation to collaborators Jun 17, 2025
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Win32-Arm64 Is not supported.
3 participants