Added CI worker for native S390X #1052
Open
+208
−5
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.
Background
As mentioned in #1050
Qemu
does not implement the hardware acceleration instructions forS390X
. Therefor a Qemu based CI will never actually test the code but fallback and use the software implementation. For this reason its highly desirable to run the zlib CI on a real S390X IBM System Z worker.Setup
This PR adds CI jobs for native S390X workers.
GitHub has not yet support for this architecture. Therefore its necessary to add self-hosted workers.
Marist University offers free workers for open source projects with their LinuxONE Community Cloud.
Job Control
The self-hosted worker setup does not allow forks to run their CI jobs on the worker. Therefor it is necessary to deactivate this new jobs for forks.
Currently its not possible to deactivate or skip a GitHub Action Job. Therefor I added an
enabled
flag to thecmake
andconfigure
job matrix. Together with a repository check (${{ github.repository == 'madler/zlib' && 'true' || 'false' }}
) the new CI jobs can bedisabled
for forks. By filtering on this flag in the job steps forks could be set toalways succeed
oralways fail
.S390X worker
GitHub does not officially support S390X as a worker. With gaplib its possible to connect an S390X instance as a self-hosted worker.
This raises some questions: Should we add the gaplib-scripts to the zlib src (zlib-ng did that). Who will maintain the
self-hosted
worker at the LinuxONE Community Cloud? I've already setup an account for testing and am willing to take this responsibility. But if its decided that it should be maintained by an official zlib maintainer I am happy to assist with the setup. If I shall maintain the worker, I need a communication channel with a zlib maintainer to exchange the github tokens.Open Questions
native S390X
CI run on forks be always failing or always success ? -> @fneddy votes for always successcontrib
folder? ->@fneddy no/ @iii-i yes