CI: add targets for armv7, aarch64, s390x, ppc64le #199
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.
More CI! This uses the Run-On-Arch Action to build inside an architecture-specific Docker container running Ubuntu, that gets run with qemu-static (from what I understand). This vastly expands our architecture/CPU coverage, unfortunately at the expense of CI runs taking more than twice as long (~1h). Let me know if this is not a good tradeoff, or if we should remove any archs that are not interesting in order to speed this up a bit (I didn’t add builds for the gnustep-1.9 runtime for this reason as I’m not sure why anyone would use it, but could easily add it).
The builds look mostly good except for the following, which I’ve flagged as being allowed to fail for now:
thread.m:192 ... A loop with no inputs or timers will exit
I also excluded the armv7 Clang combination, as it fails due to this CMake bug, which is fixed in newer CMake releases. Ubuntu 20.04 currently ships with CMake 3.16.3 which still has this bug. Not sure if there’s an easy way to install a newer CMake? Here’s a CI run with the full matrix for reference.
Finally, the s390x Clang combination is excluded due to the following error building libdispatch (somehow passing
-Wno-error=unneeded-internal-declaration
in CMAKE_C_FLAGS did not change anything):By the way, the Run-On-Arch action also supports Debian and Arch Linux in addition to Ubuntu, which I guess would be nice to use to expand OS coverage, but I wasn’t sure how to install the necessary packages on these systems (at least Arch’s package database seems to be missing many packages that we require, not sure about Debian).
Also removes installation of libkqueue-dev package as it is not used by libdispatch, updates dependencies from libobjc-9-dev to libobjc-10-dev, and adds -q flag to git clone to prevent progress logs from spamming logs.