diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-10-17 21:53:16 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2022-10-18 15:07:45 -0400 |
commit | 28c9b8a8635225e803ff214b9479c7b5d7ce694f (patch) | |
tree | a37ce117dfc83c34c1a67b19970c8fd2aa0507e1 /.gitlab | |
parent | 6d90a00ec452cd2e367074f7f0b4796253d580a6 (diff) | |
download | haskell-28c9b8a8635225e803ff214b9479c7b5d7ce694f.tar.gz |
gitlab-ci: Add CI support for s390x under cross-compilationwip/cross-ci-s390x
This adds rudimentary validation of s390x (supported via the LLVM
backend) via cross-compilation on Debian 11. The goal is to provide at
least minimal test coverage of big-endian platforms.
Diffstat (limited to '.gitlab')
-rwxr-xr-x | .gitlab/gen_ci.hs | 1 | ||||
-rw-r--r-- | .gitlab/jobs.yaml | 121 |
2 files changed, 122 insertions, 0 deletions
diff --git a/.gitlab/gen_ci.hs b/.gitlab/gen_ci.hs index db338b88d4..2ab1969233 100755 --- a/.gitlab/gen_ci.hs +++ b/.gitlab/gen_ci.hs @@ -814,6 +814,7 @@ jobs = Map.fromList $ concatMap flattenJobGroup $ , allowFailureGroup (standardBuildsWithConfig Amd64 (Linux Alpine) static) , disableValidate (allowFailureGroup (standardBuildsWithConfig Amd64 (Linux Alpine) staticNativeInt)) , validateBuilds Amd64 (Linux Debian11) (crossConfig "aarch64-linux-gnu" (Just "qemu-aarch64 -L /usr/aarch64-linux-gnu")) + , validateBuilds Amd64 (Linux Debian11) (crossConfig "s390x-linux-gnu" (Just "qemu-s390x -L /usr/s390x-linux-gnu")) ] where diff --git a/.gitlab/jobs.yaml b/.gitlab/jobs.yaml index 07e91da267..7bd3b01e1b 100644 --- a/.gitlab/jobs.yaml +++ b/.gitlab/jobs.yaml @@ -1328,6 +1328,67 @@ "XZ_OPT": "-9" } }, + "nightly-x86_64-linux-deb11-cross_s390x-linux-gnu-validate": { + "after_script": [ + ".gitlab/ci.sh save_cache", + ".gitlab/ci.sh clean", + "cat ci_timings" + ], + "allow_failure": false, + "artifacts": { + "expire_in": "8 weeks", + "paths": [ + "ghc-x86_64-linux-deb11-cross_s390x-linux-gnu-validate.tar.xz", + "junit.xml" + ], + "reports": { + "junit": "junit.xml" + }, + "when": "always" + }, + "cache": { + "key": "x86_64-linux-deb11-$CACHE_REV", + "paths": [ + "cabal-cache", + "toolchain" + ] + }, + "dependencies": [], + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV", + "needs": [ + { + "artifacts": false, + "job": "hadrian-ghc-in-ghci" + } + ], + "rules": [ + { + "if": "($CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY) && (\"true\" == \"true\") && (\"true\" == \"true\") && (\"true\" == \"true\") && (\"true\" == \"true\")", + "when": "on_success" + } + ], + "script": [ + "sudo chown ghc:ghc -R .", + ".gitlab/ci.sh setup", + ".gitlab/ci.sh configure", + ".gitlab/ci.sh build_hadrian", + ".gitlab/ci.sh test_hadrian" + ], + "stage": "full-build", + "tags": [ + "x86_64-linux" + ], + "variables": { + "BIGNUM_BACKEND": "gmp", + "BIN_DIST_NAME": "ghc-x86_64-linux-deb11-cross_s390x-linux-gnu-validate", + "BUILD_FLAVOUR": "validate", + "CONFIGURE_ARGS": "--with-intree-gmp", + "CROSS_EMULATOR": "qemu-s390x -L /usr/s390x-linux-gnu", + "CROSS_TARGET": "s390x-linux-gnu", + "TEST_ENV": "x86_64-linux-deb11-cross_s390x-linux-gnu-validate", + "XZ_OPT": "-9" + } + }, "nightly-x86_64-linux-deb11-validate": { "after_script": [ ".gitlab/ci.sh save_cache", @@ -3810,6 +3871,66 @@ "TEST_ENV": "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate" } }, + "x86_64-linux-deb11-cross_s390x-linux-gnu-validate": { + "after_script": [ + ".gitlab/ci.sh save_cache", + ".gitlab/ci.sh clean", + "cat ci_timings" + ], + "allow_failure": false, + "artifacts": { + "expire_in": "2 weeks", + "paths": [ + "ghc-x86_64-linux-deb11-cross_s390x-linux-gnu-validate.tar.xz", + "junit.xml" + ], + "reports": { + "junit": "junit.xml" + }, + "when": "always" + }, + "cache": { + "key": "x86_64-linux-deb11-$CACHE_REV", + "paths": [ + "cabal-cache", + "toolchain" + ] + }, + "dependencies": [], + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV", + "needs": [ + { + "artifacts": false, + "job": "hadrian-ghc-in-ghci" + } + ], + "rules": [ + { + "if": "($CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null) && (\"true\" == \"true\") && (\"true\" == \"true\") && (\"true\" == \"true\") && (\"true\" == \"true\")", + "when": "on_success" + } + ], + "script": [ + "sudo chown ghc:ghc -R .", + ".gitlab/ci.sh setup", + ".gitlab/ci.sh configure", + ".gitlab/ci.sh build_hadrian", + ".gitlab/ci.sh test_hadrian" + ], + "stage": "full-build", + "tags": [ + "x86_64-linux" + ], + "variables": { + "BIGNUM_BACKEND": "gmp", + "BIN_DIST_NAME": "ghc-x86_64-linux-deb11-cross_s390x-linux-gnu-validate", + "BUILD_FLAVOUR": "validate", + "CONFIGURE_ARGS": "--with-intree-gmp", + "CROSS_EMULATOR": "qemu-s390x -L /usr/s390x-linux-gnu", + "CROSS_TARGET": "s390x-linux-gnu", + "TEST_ENV": "x86_64-linux-deb11-cross_s390x-linux-gnu-validate" + } + }, "x86_64-linux-deb11-validate": { "after_script": [ ".gitlab/ci.sh save_cache", |