-md
).
ci: run s390x job #33436
pull fanquake wants to merge 3 commits into bitcoin:master from fanquake:ci_run_s390x changing 3 files +16 −0-
fanquake commented at 1:40 pm on September 19, 2025: memberHow fast does this run? (
-
DrahtBot added the label Tests on Sep 19, 2025
-
DrahtBot commented at 1:40 pm on September 19, 2025: contributor
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Code Coverage & Benchmarks
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33436.
Reviews
See the guideline for information on the review process. A summary of reviews will appear here.
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #33302 (ci: disable cirrus cache in 32bit arm job by willcl-ark)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
-
willcl-ark commented at 2:54 pm on September 19, 2025: member
I think this needs qemu:
0commit 766b0b32361ae2eca3ee0b85caf1e27701fc0275 1Author: will <will@256k1.dev> 2Date: Fri Sep 19 15:47:01 2025 +0100 3 4 use qemu 5 6diff --git a/.github/actions/configure-docker/action.yml b/.github/actions/configure-docker/action.yml 7index c78df86b6cf..db5001c140d 100644 8--- a/.github/actions/configure-docker/action.yml 9+++ b/.github/actions/configure-docker/action.yml 10@@ -4,9 +4,16 @@ inputs: 11 use-cirrus: 12 description: 'Use cirrus cache' 13 required: true 14+ use-qemu: 15+ description: 'Use qemu' 16+ default: false 17 runs: 18 using: 'composite' 19 steps: 20+ - name: Set up QEMU 21+ if: ${{ inputs.use-qemu }} 22+ uses: docker/setup-qemu-action@v3 23+ 24 - name: Set up Docker Buildx 25 uses: docker/setup-buildx-action@v3 26 with: 27diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml 28index 6869c5cf25d..cf5ae7c717e 100644 29--- a/.github/workflows/ci.yml 30+++ b/.github/workflows/ci.yml 31@@ -481,6 +481,7 @@ jobs: 32 fallback-runner: 'ubuntu-24.04' 33 timeout-minutes: 120 34 file-env: './ci/test/00_setup_env_s390x.sh' 35+ use-qemu: true 36 37 - name: 'CentOS, depends, gui' 38 cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-lg' 39@@ -520,6 +521,7 @@ jobs: 40 uses: ./.github/actions/configure-docker 41 with: 42 use-cirrus: ${{ needs.runners.outputs.use-cirrus-runners }} 43+ use-qemu: ${{ matrix.use-qemu }} 44 45 - name: Enable bpfcc script 46 if: ${{ env.CONTAINER_NAME == 'ci_native_asan' }}
-
use qemu 6f69cc77f7
-
ci: run s390x job 69474fd616
-
fanquake force-pushed on Sep 19, 2025
-
willcl-ark commented at 3:00 pm on September 19, 2025: member
Or we just enable qemu on all jobs (no downsides that I know of) with:
0commit 6e7fba0b93d1dec0deafe7b7f87054c9a629134f 1Author: will <will@256k1.dev> 2Date: Fri Sep 19 15:47:01 2025 +0100 3 4 use qemu 5 6diff --git a/.github/actions/configure-docker/action.yml b/.github/actions/configure-docker/action.yml 7index c78df86b6cf..b5f3601a24b 100644 8--- a/.github/actions/configure-docker/action.yml 9+++ b/.github/actions/configure-docker/action.yml 10@@ -7,6 +7,9 @@ inputs: 11 runs: 12 using: 'composite' 13 steps: 14+ - name: Set up QEMU 15+ uses: docker/setup-qemu-action@v3 16+ 17 - name: Set up Docker Buildx 18 uses: docker/setup-buildx-action@v3 19 with:
which avoids passing options to the configure-docker action and things
-
[wip] ci: exclude qt from s390x job f379d597a7
-
fanquake commented at 4:40 pm on September 19, 2025: memberThanks @willcl-ark. Pulled in (some version) of your change, and added a
NO_QT=1
for now. -
fanquake commented at 5:04 pm on September 19, 2025: memberLooks like this passed in
98m
(without Qt and nothing cached). -
maflcko commented at 8:32 am on September 23, 2025: member
Will the be useful overall? I think it is clear that no developer is using this platform right now (maybe not even a user), so the benefit of the CI config is mostly a sanity check. The issues it finds seems to happen less than once per year:
All the issues were trivial to fixup individually as a follow-up. However, the task here (even with a full depends cache) will take 60 minutes with an empty ccache (40 minutes compile + 20 minutes tests).
No strong opinion, but I think some tasks are fine as nightly tasks. It should be trivial to take the actions from this repo and call them from one of the nightly CI repos. C.f. https://github.com/bitcoin-core/qa-assets/blob/db30a6290f4070a31572801e2fd62c8876282ecc/.github/workflows/ci.yml#L56-L75
-
in .github/actions/configure-docker/action.yml:15 in f379d597a7
10 runs: 11 using: 'composite' 12 steps: 13+ - name: Set up QEMU 14+ if: ${{ inputs.use-qemu }} 15+ uses: docker/setup-qemu-action@v3
maflcko commented at 8:38 am on September 23, 2025:Will this cache anything?
According to https://github.com/bitcoin/bitcoin/actions/caches
I see:
docker.io–tonistiigi–binfmt-latest-linux-x64 30 MB cached 4 days ago refs/pull/33436/merge Last used 4 days ago
Which seems a bit odd, but I am not familiar with GHA, nor the
docker/
actions.willcl-ark commented at 9:49 am on September 23, 2025: memberWill the be useful overall? I think it is clear that no developer is using this platform right now (maybe not even a user), so the benefit of the CI config is mostly a sanity check.
My understanding of this job is that it represents all Big Endian systems, and therefore, as you say just exists as a sanity check (that we don’t have any endianness bugs). If nobody uses any BE systems (IBM Z, older SPARC, some powerpc) perhaps it’s not even useful in that role though…
I’d agree with having this run as a nightly (or even less frequent) job. Would also note that secp256k1 are already running an s390x task:
…so critical cryptography code is already being tested for endianness bugs that way. Perhaps that’s enough testing for us?
DrahtBot commented at 1:35 pm on September 23, 2025: contributor🐙 This pull request conflicts with the target branch and needs rebase.DrahtBot added the label Needs rebase on Sep 23, 2025maflcko commented at 10:46 am on September 24, 2025: memberFor the record a big-endian CI machine would have helped with #31144
It should be trivial to run the CI task locally, on demand. For development/debugging that should even be easier than to rely on a remove short-lived server. It should also be easy to temporarily add the config to the CI to trigger it on demand, if needed, similar to *BSD stuff, like #33435 (review).
Again, I am not against adding this. My only concern is that this would likely be one of the slowest tasks. With the given timeout it doesn’t even finish on GHA at all right now.
powerpc
I am sure there are some ppc users, so the s390x CI config must be kept and maintained and run before every release at least once. My only concern is that the overhead to run this on every pull request is more than the benefit it provides. (Similar to how there are no *BSD CI tasks on pull requests)
This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-09-26 15:13 UTC
More mirrored repositories can be found on mirror.b10c.me