CI: Add Alpine Linux runners on different (emulated) CPU architectures #353
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.
In the light of #221, this PR adds some additional runners to the CI that build and run the SuiteSparse libraries on different CPU architectures.
There is an existing action that makes it pretty easy to install a chroot for different CPU architectures based on the packages distributed by Alpine Linux. That action also allows it to easily execute commands "natively" on those architectures. If necessary, they are emulated by qemu.
I tried to keep the rules pretty close to the existing CI. But building GraphBLAS on emulated hardware takes too long. In some prior tests, the CI didn't complete even 10% of the compilation process before the 6 hour timeout was reached.
So, I skipped building GraphBLAS for these runners. To still be able to build the example, this PR adapts it such that GraphBLAS is now an optional dependency for the example. I hope that is ok.
As you can see, some of the demos segfault on CPUs for which the pointer type is 32-bit. We already saw the same for Windows 32-bit. But it looks like it is also happening on Linux.