Test GNU/Linux ARM builds on the new ARM CI runner#1777
Merged
Byron merged 5 commits intoGitoxideLabs:mainfrom Jan 18, 2025
Merged
Test GNU/Linux ARM builds on the new ARM CI runner#1777Byron merged 5 commits intoGitoxideLabs:mainfrom
Byron merged 5 commits intoGitoxideLabs:mainfrom
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
Member
|
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 |
Member
Author
|
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.ymlto makes use of them, by:ubuntu-24.04-armjob totest-fast.test-32bita 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-crossjob, which was not able to run many tests; it was only testinggix-hashtable. Its value seems less now thattest-32bitcovers ARMv7. However, it may be worth reviewing the specific target, in case it is a goal to continue running some tests with aandroideabitarget. (If so, it should be possible to add that as a target to a non-cross 64-bit or 32-bit environment.)