CI: ubuntu.yml: Add GitHub Actions s390x case

Add the s390x case using GitHub Actions ppc64le/s390x service.
https://github.com/IBM/actionspz

We can run the ppc64le/s390x cases only in the registered upstream repositories.
https://github.com/IBM/actionspz/blob/main/docs/FAQ.md#what-about-forked-repos

The following matrix upstream logic is to skip the ppc64le/s390x in the
downstream (fork) repositories.

```
+        upstream:
+          - ${{ github.repository == 'ruby/ruby' }}
```

Use the "os" list to determine the excluded ppc64le/s390x cases by using the
"exclude" syntax. Because the "exclude" syntax are executed before the
"include" syntax.

Add the ubuntu-24.04-ppc64le as a comment, because the GitHub Actions ppc64le
case has the following test errors and failures.
https://bugs.ruby-lang.org/issues/21534
This commit is contained in:
Jun Aruga 2025-07-22 16:12:46 +02:00 committed by Jun Aruga
parent e2aeb7d977
commit 099df0b40b

View file

@ -24,6 +24,22 @@ jobs:
make: make:
strategy: strategy:
matrix: matrix:
test_task: [check]
configure: ['']
arch: ['']
os:
- ubuntu-24.04
- ubuntu-24.04-arm
# FIXME Comment out ppc64le due to failing tests on GitHub Actions
# ppc64le
# https://bugs.ruby-lang.org/issues/21534
# - ubuntu-24.04-ppc64le
- ubuntu-24.04-s390x
# The ppc64le/s390x runners work only in the registered repositories.
# They don't work in forked repositories.
# https://github.com/IBM/actionspz/blob/main/docs/FAQ.md#what-about-forked-repos
upstream:
- ${{ github.repository == 'ruby/ruby' }}
include: include:
- test_task: check - test_task: check
configure: 'cppflags=-DVM_CHECK_MODE' configure: 'cppflags=-DVM_CHECK_MODE'
@ -36,10 +52,11 @@ jobs:
- test_task: test-bundler-parallel - test_task: test-bundler-parallel
timeout: 50 timeout: 50
- test_task: test-bundled-gems - test_task: test-bundled-gems
- test_task: check exclude:
os: ubuntu-24.04 - os: ubuntu-24.04-ppc64le
- test_task: check upstream: false
os: ubuntu-24.04-arm - os: ubuntu-24.04-s390x
upstream: false
fail-fast: false fail-fast: false
env: env:
@ -72,7 +89,15 @@ jobs:
with: with:
ruby-version: '3.1' ruby-version: '3.1'
bundler: none bundler: none
if: ${{ !endsWith(matrix.os, 'arm') }} if: ${{ !endsWith(matrix.os, 'arm') && !endsWith(matrix.os, 'ppc64le') && !endsWith(matrix.os, 's390x') }}
# Avoid possible test failures with the zlib applying the following patch
# on s390x CPU architecture.
# https://github.com/madler/zlib/pull/410
- name: Disable DFLTCC
run: echo "DFLTCC=0" >> $GITHUB_ENV
working-directory:
if: ${{ endsWith(matrix.os, 's390x') }}
- uses: ./.github/actions/setup/directories - uses: ./.github/actions/setup/directories
with: with: