-
-
Notifications
You must be signed in to change notification settings - Fork 322
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
Test GNU/Linux ARM builds on the new ARM CI runner #1777
Conversation
This turns the `test-32bit` job into a matrix job definition with two jobs: the i386 job, which already existed, and a new ARMv7 job, which is able to run (still without emulation) in a container on the new ARM64 runner. As written, this is not expected to work, and is even expected to break the old job, because I've commented out the code that installs libraries for the 64-bit host architecture inside the container to allow the 64-bit Node.js on the host to run in the container for script steps. This is just to make sure that is still needed, before attempting to generalize it to cover both platforms.
This is needed so script steps can run Node.js, which is the 64-bit Node.js on the host. This appears not just to still be the case for x86, but also for ARM when using containers on the new ARM runners.
It was not able to test as much as was desired, and there is now a job-level container based way that does a full 32-but ARMv7 test (facilitated by the new ARM64 runners, which are also able to execute ARMv7 binaries without emulation). The new ARM jobs added in the last couple of commits, consisting of a 64-bit job in `test-fast` and a 32-bit job in `test-32bit`, increase the total time and resources required to run CI checks. Removing `test-32bit-cross` only slightly counteracts that. But it is also less needed now.
5589984
to
c3d4cff
Compare
Neither is expected to fail, so this is analogous to most of the other matrix jobs, such as `test-fast`, with no more of a reason than there to use `fail-fast: true`. So this removes that.
c7f5013
to
c3d4cff
Compare
Thanks a lot for this massive simplification and improvement to the CI setup. I wasn't aware that ARM runners are now available for Linux as well. The |
I've opened #1780 to track the problem described in #1778 (comment) and give what information I know about it. I had seen something like that here when working on this, but had thought or hoped it had gone away. |
While ARM64 runners for macOS have been available, and not limited to enterprise or paid customers, for a while now, free Linux ARM runners for public projects were not likewise available. They are now available in public preview, as of a couple days ago. This PR extends and modifies
cy.yml
to makes use of them, by:ubuntu-24.04-arm
job totest-fast
.test-32bit
a matrix job definition, and adding a 32-bit ARMv7 job to it. The 32-bit x86 job uses a container on an x86-64 runner, just as before, while the new 32-bit ARM job uses a container on an ARM64 runner. (Although GitHub Actions supports 32-bit ARM runners in the sense that the runner software can run on such a system, there are no GitHub-hosted 32-bit ARM runners..)test-32bit-cross
job, which was not able to run many tests; it was only testinggix-hashtable
. Its value seems less now thattest-32bit
covers ARMv7. However, it may be worth reviewing the specific target, in case it is a goal to continue running some tests with aandroideabi
target. (If so, it should be possible to add that as a target to a non-cross 64-bit or 32-bit environment.)