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
  1. fanquake commented at 1:40 pm on September 19, 2025: member
    How fast does this run? (-md).
  2. DrahtBot added the label Tests on Sep 19, 2025
  3. 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.

  4. 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' }}
    
  5. use qemu 6f69cc77f7
  6. ci: run s390x job 69474fd616
  7. fanquake force-pushed on Sep 19, 2025
  8. 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

  9. [wip] ci: exclude qt from s390x job f379d597a7
  10. fanquake commented at 4:40 pm on September 19, 2025: member
    Thanks @willcl-ark. Pulled in (some version) of your change, and added a NO_QT=1 for now.
  11. fanquake commented at 5:04 pm on September 19, 2025: member
    Looks like this passed in 98m (without Qt and nothing cached).
  12. 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

  13. 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.

  14. willcl-ark commented at 9:49 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.

    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:

    https://github.com/bitcoin-core/secp256k1/blob/de6af6ae3568461edc9967500d7a70beeb66a642/.github/workflows/ci.yml#L161-L164

    …so critical cryptography code is already being tested for endianness bugs that way. Perhaps that’s enough testing for us?

  15. DrahtBot commented at 1:35 pm on September 23, 2025: contributor
    🐙 This pull request conflicts with the target branch and needs rebase.
  16. DrahtBot added the label Needs rebase on Sep 23, 2025
  17. l0rinc commented at 5:20 pm on September 23, 2025: contributor

    The issues it finds seems to happen less than once per year

    For the record a big-endian CI machine would have helped with #31144

  18. maflcko commented at 10:46 am on September 24, 2025: member

    For 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)


github-metadata-mirror

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

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me