-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide binary for arm64 architecture (Linux) #4478
Comments
Electron has builts for arm7 and arm64 https://electronjs.org/docs/tutorial/support#linux the challenge would be to build Cypress on CI. For example CircleCI does not support ARM builds at the moment |
Thanks for the feedback, @bahmutov. |
Yes, you can build the test binary yourself following https://github.com/cypress-io/cypress/blob/develop/DEPLOY.md#building-the-binary - usually, you just need to run a single script to build it. |
@svi3c were you able to build Cypress on your ARM machine? |
@bjclark13 sorry, I did not try it yet. The priority of the task was decreased in my project. |
I had a need for this, myself, but the original
I'm also on Node 10, so I rewound the repo to: 1a4ac7d I will probably switch to an Intel machine in a few hours to complete my immediate task and then come back to this problem in the future (it may also prompt me to update the backend to use node 12 instead of 10). |
@bahmutov @dfellis @svi3c @jennifer-shehane I am also interested in armv8 cypress build. If I use the cypress version 4.8.0 via npm....on armv8 machine, I get following error
My system is ubuntu Xenial. I guess cypress can not be installed on ARMv8 via npm??? I took the source code and built it following this https://github.com/cypress-io/cypress/blob/develop/DEPLOY.md
But this is failing for a lot of dependencies like postinstall, lerna and many more. Even installing these dependecies is not helping me to build my own cypress on armv8 machine. Can you please check if I am following the correct steps here?? Or do I need to execute something else?? |
Have you found a solution? |
This comment has been minimized.
This comment has been minimized.
@dfellis node-sass has been removed as a dependency from Cypress in 6.3.0. |
There's a blog post explaining how to run Cypress on Apple's latest ARM-based M1 chip here: https://cypress.io/blog/2021/01/20/running-cypress-on-the-apple-m1-silicon-arm-architecture-using-rosetta-2/ |
Hey I am trying to run on AWS with |
@jennifer-shehane will their be native support for Apple Silicon soon? |
Any RPi support? Even if node performance on Raspberry Pi 4B/8G silicon is still ugly, any support planned? |
CircleCI provides ARM resources now, see: https://circleci.com/blog/managing-ci-cd-pipelines-with-arm-compute-resource-classes/ Although the blog post writes about a preview, there is no hint about this on the website and in the docs so maybe it's stable now? Unfortunately they currently only support |
arm64 looks like a no-brainer to me: the typical user for Raspbian 32bit might not be in the ballpark for having need for Cypress. Those who do most probably have ditched Raspbian for such uses already or never did start there and work with arm64 anyway. In my experience, Raspbian has so many crude things thanks to 32bit and its maker orientation, such as broken kernel and Docker MACVLAN support, etc. |
@DarkC35 Yah it is a little confusing. I've filled out the form to request preview access regardless for us. |
I was able to build for ARM on a Graviton 2 AWS instance with minimal changes. I changed to Dockerfile to use Ubuntu 20.04 since the repositories for 19.04 are EOL and I also updated the nodejs repo to use 14_x. I followed the build instructions in DEPLOY.md. As shown in #16530 , there are only two issues building 7.4.0. The current electron-packager version incorrectly detects an incompatible electron version which is fixed in electron-packager 15.2.0. The other issue is a hardcoded path to linux-unpacked which #16530 also fixes. You can either use the unmerged branch in #16530 or you can manually work around the bugs:
For the second issue which occurs at the end of the 'yarn binary-build' step , you can just create a symlink from linux-unpacked to linux-arm64-unpacked. I had to create the symlink a second time for 'yarn binary-zip'. I also noticed if you have DEBUG=* set or some other verbose logging enabled, you will get maxBuffer errors during the 'lerna' commands. The simplest solution it just unset any environment variable or option. Alternatively, you can increase the buffer size by passing lerna an additional parameter. |
Hello, I know that Cypress can be run on M1 Macs using Rosetta 2, but my machine does not have development tools (e.g. Node.js) installed except Docker. I am developing apps using Remote - Containers and VS Code provides dev images for ARM64 Docker daemons. For desktop environment I am using X11vnc running inside Docker. Everything is working fine except Cypress, which fails in this manner: It would be great if binaries for ARM-based Linux can be provided. 🙏 |
I'm using Cypress on my Mac to actively develop new features (TDD) and it feels really slow. |
While I was able to get 9.4.1 building, I couldn't get 7.7.0 to build. I got as far as running
|
Separate issue to discuss Mac M1 support: #19908 |
I created a Dockerfile to build from source based on the script from @stevehodgkiss Here it is:
It can be used as part of multi stage build by, for example, including the built file in a subsequent container build, e.g.:
NB: I had to redirect standard error to standard output in the second to last line above. This is because some of the tests that run after the build are failing. The build still seems to work correctly, but if anyone is able to fix those errors, that would be ideal. NB2: This can be run on an M1 mac (which will build an arm64 docker container), but because this is actually building on linux I posted here rather than on 19908 |
Also, in terms of the CI/CD testing blocker/problem, even if the pipelines don't have arm64 agents that should, in theory, be able to be overcome using a QEMU image. See qemu-user-static. This is actually the way MSFT recommends doing multi-arch builds on ADO. If I have some time this week, I'll see if I can put together a POC Dockerfile. Edit: This repo has the basic idea -- building an arm64 on CircleCI using x64 architecture. Unfortunately it doesn't finish the build due to a network failure, which seems unrelated to arm64. Also, it's fairly slow. On the plus side, it looks like arm support has gone live in Circle CI so perhaps that can be used? |
@stevehodgkiss I would buy you a coffee if you were nearby. Truly appreciate your answer. I was able to setup Cypress on my RPi4 following your instructions after 3 days !!!. |
Use this
|
I've started a PR to add 64-bit Linux Arm support ( This will still not provide support for 32-bit Arm ( |
The code for this is done in cypress-io/cypress#22252, but has yet to be released. |
Released in This comment thread has been locked. If you are still experiencing this issue after upgrading to |
We need to run e2e tests on a device with ARM 7 architecture. Could you provide binaries for this architecture, please?
I would like to move all the e2e tests in a customer project to cypress, since they are a lot faster than Selenium. Only the missing binary is holding be back.
The text was updated successfully, but these errors were encountered: