diff options
-rw-r--r-- | .gitlab-ci.yml | 63 | ||||
-rwxr-xr-x | .gitlab/gen_ci.hs | 35 | ||||
-rw-r--r-- | .gitlab/jobs.yaml | 925 |
3 files changed, 418 insertions, 605 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ace87aaf3b..42552644fb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -538,8 +538,6 @@ doc-tarball: hackage-doc-tarball: stage: packaging needs: - - job: x86_64-linux-fedora33-release-hackage - optional: true - job: nightly-x86_64-linux-fedora33-release-hackage optional: true - job: release-x86_64-linux-fedora33-release-hackage @@ -942,64 +940,3 @@ pages: artifacts: paths: - public - -.x86_64-linux-ubuntu20_04-cross_wasm32-wasi-release: - stage: full-build - rules: - # See #22664 to see what needs to be done to bring this up to the validate pipeline standards. - - if: $NIGHTLY - tags: - - x86_64-linux - image: registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV - before_script: - - sudo chown ghc:ghc -R . - variables: - BIN_DIST_NAME: ghc-x86_64-linux-ubuntu20_04-cross_wasm32-wasi-int_$BIGNUM_BACKEND-release - BUILD_FLAVOUR: perf - CONFIGURE_ARGS: --with-intree-gmp --with-system-libffi - XZ_OPT: "-9" - CONF_CC_OPTS_STAGE2: -Wno-int-conversion -Wno-strict-prototypes -mnontrapping-fptoint -msign-ext -mbulk-memory -mmutable-globals -mreference-types - CONF_CXX_OPTS_STAGE2: -fno-exceptions -Wno-int-conversion -Wno-strict-prototypes -mnontrapping-fptoint -msign-ext -mbulk-memory -mmutable-globals -mreference-types - CONF_GCC_LINKER_OPTS_STAGE2: -Wl,--error-limit=0,--growable-table,--stack-first -Wno-unused-command-line-argument - CROSS_EMULATOR: wasmtime - CROSS_TARGET: wasm32-wasi - HADRIAN_ARGS: --docs=none - TEST_ENV: x86_64-linux-ubuntu20_04-cross_wasm32-wasi-int_$BIGNUM_BACKEND-release - script: - - | - pushd libraries/process - curl https://patch-diff.githubusercontent.com/raw/haskell/process/pull/240.diff | git apply - popd - pushd utils/hsc2hs - curl https://patch-diff.githubusercontent.com/raw/haskell/hsc2hs/pull/68.diff | git apply - popd - - pushd "$(mktemp -d)" - curl -L https://gitlab.haskell.org/ghc/ghc-wasm-meta/-/archive/master/ghc-wasm-meta-master.tar.gz | tar xz --strip-components=1 - PREFIX=/tmp/.ghc-wasm SKIP_GHC=1 ./setup.sh - source /tmp/.ghc-wasm/env - popd - - .gitlab/ci.sh setup - .gitlab/ci.sh configure - .gitlab/ci.sh build_hadrian - .gitlab/ci.sh test_hadrian - - after_script: - - cat ci-timings - - artifacts: - expire_in: 8 weeks - paths: - - ghc-x86_64-linux-ubuntu20_04-cross_wasm32-wasi-int_$BIGNUM_BACKEND-release.tar.xz - when: always - -x86_64-linux-ubuntu20_04-cross_wasm32-wasi-int_gmp-release: - extends: .x86_64-linux-ubuntu20_04-cross_wasm32-wasi-release - variables: - BIGNUM_BACKEND: gmp - -x86_64-linux-ubuntu20_04-cross_wasm32-wasi-int_native-release: - extends: .x86_64-linux-ubuntu20_04-cross_wasm32-wasi-release - variables: - BIGNUM_BACKEND: native diff --git a/.gitlab/gen_ci.hs b/.gitlab/gen_ci.hs index c3a85c24e3..386d085d8f 100755 --- a/.gitlab/gen_ci.hs +++ b/.gitlab/gen_ci.hs @@ -10,6 +10,7 @@ build-depends: base, aeson >= 1.8.1, containers, bytestring import Data.Aeson as A import qualified Data.Map as Map import Data.Map (Map) +import Data.Maybe import qualified Data.ByteString.Lazy as B import qualified Data.ByteString.Lazy.Char8 as B import Data.List (intercalate) @@ -137,6 +138,7 @@ configureArgsStr bc = unwords $ ["--enable-unregisterised"| unregisterised bc ] ++ ["--disable-tables-next-to-code" | not (tablesNextToCode bc) ] ++ ["--with-intree-gmp" | Just _ <- pure (crossTarget bc) ] + ++ ["--with-system-libffi" | crossTarget bc == Just "wasm32-wasi" ] -- Compute the hadrian flavour from the BuildConfig mkJobFlavour :: BuildConfig -> Flavour @@ -323,7 +325,7 @@ dockerImage _ _ = Nothing -- The "proper" solution would be to use a dependent monoidal map where each key specifies -- the combination behaviour of it's values. Ie, whether setting it multiple times is an error -- or they should be combined. -newtype MonoidalMap k v = MonoidalMap (Map k v) +newtype MonoidalMap k v = MonoidalMap { unMonoidalMap :: Map k v } deriving (Eq, Show, Functor, ToJSON) instance (Ord k, Semigroup v) => Semigroup (MonoidalMap k v) where @@ -607,6 +609,7 @@ job arch opsys buildConfig = (jobName, Job {..}) , "bash .gitlab/ci.sh test_hadrian" ] | otherwise = [ "find libraries -name config.sub -exec cp config.sub {} \\;" | Darwin == opsys ] ++ + [ "sudo apk del --purge glibc*" | opsys == Linux Alpine, isNothing $ crossTarget buildConfig ] ++ [ "sudo chown ghc:ghc -R ." | Linux {} <- [opsys]] ++ [ ".gitlab/ci.sh setup" , ".gitlab/ci.sh configure" @@ -690,6 +693,12 @@ addJobRule r j = j { jobRules = enableRule r (jobRules j) } addVariable :: String -> String -> Job -> Job addVariable k v j = j { jobVariables = mminsertWith (++) k [v] (jobVariables j) } +setVariable :: String -> String -> Job -> Job +setVariable k v j = j { jobVariables = MonoidalMap $ Map.insert k [v] $ unMonoidalMap $ jobVariables j } + +delVariable :: String -> Job -> Job +delVariable k j = j { jobVariables = MonoidalMap $ Map.delete k $ unMonoidalMap $ jobVariables j } + -- Building the standard jobs -- -- | Make a normal validate CI job @@ -786,7 +795,7 @@ flattenJobGroup (ValidateOnly a b) = [a, b] -- | Specification for all the jobs we want to build. jobs :: Map String Job -jobs = Map.fromList $ concatMap flattenJobGroup +jobs = Map.fromList $ concatMap (filter is_enabled_job . flattenJobGroup) [ disableValidate (standardBuilds Amd64 (Linux Debian10)) , standardBuildsWithConfig Amd64 (Linux Debian10) dwarf , validateBuilds Amd64 (Linux Debian10) nativeInt @@ -823,9 +832,14 @@ jobs = Map.fromList $ concatMap flattenJobGroup ) { bignumBackend = Native } + , make_wasm_jobs wasm_build_config + , disableValidate $ make_wasm_jobs wasm_build_config { bignumBackend = Native } + , disableValidate $ make_wasm_jobs wasm_build_config { unregisterised = True } ] where + is_enabled_job (_, Job {jobRules = OnOffRules {..}}) = not $ Disable `S.member` rule_set + hackage_doc_job = rename (<> "-hackage") . modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-base-url") tsan_jobs = @@ -836,6 +850,23 @@ jobs = Map.fromList $ concatMap flattenJobGroup . addVariable "HADRIAN_ARGS" "--docs=none") $ validateBuilds Amd64 (Linux Debian10) tsan + make_wasm_jobs cfg = + modifyJobs + ( delVariable "BROKEN_TESTS" + . setVariable "HADRIAN_ARGS" "--docs=none" + . delVariable "INSTALL_CONFIGURE_ARGS" + ) + $ StandardTriple + (validate Amd64 (Linux Alpine) cfg) + (nightly Amd64 (Linux Alpine) cfg) + (release Amd64 (Linux Alpine) cfg) + + wasm_build_config = + (crossConfig "wasm32-wasi" NoEmulatorNeeded Nothing) + { buildFlavour = Release, + fullyStatic = True + } + main :: IO () main = do as <- getArgs diff --git a/.gitlab/jobs.yaml b/.gitlab/jobs.yaml index ce580bcd05..fc064518b4 100644 --- a/.gitlab/jobs.yaml +++ b/.gitlab/jobs.yaml @@ -120,64 +120,6 @@ "TEST_ENV": "aarch64-linux-deb10-validate" } }, - "aarch64-linux-deb10-validate+llvm": { - "after_script": [ - ".gitlab/ci.sh save_cache", - ".gitlab/ci.sh clean", - "cat ci_timings" - ], - "allow_failure": false, - "artifacts": { - "expire_in": "2 weeks", - "paths": [ - "ghc-aarch64-linux-deb10-validate+llvm.tar.xz", - "junit.xml" - ], - "reports": { - "junit": "junit.xml" - }, - "when": "always" - }, - "cache": { - "key": "aarch64-linux-deb10-$CACHE_REV", - "paths": [ - "cabal-cache", - "toolchain" - ] - }, - "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$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\") && (\"disabled\" != \"disabled\")", - "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": [ - "aarch64-linux" - ], - "variables": { - "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-aarch64-linux-deb10-validate+llvm", - "BUILD_FLAVOUR": "validate+llvm", - "CONFIGURE_ARGS": "", - "TEST_ENV": "aarch64-linux-deb10-validate+llvm" - } - }, "i386-linux-deb9-validate": { "after_script": [ ".gitlab/ci.sh save_cache", @@ -602,6 +544,128 @@ "XZ_OPT": "-9" } }, + "nightly-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static": { + "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-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz", + "junit.xml" + ], + "reports": { + "junit": "junit.xml" + }, + "when": "always" + }, + "cache": { + "key": "x86_64-linux-alpine3_12-$CACHE_REV", + "paths": [ + "cabal-cache", + "toolchain" + ] + }, + "dependencies": [], + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$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\")", + "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-alpine3_12-cross_wasm32-wasi-release+fully_static", + "BUILD_FLAVOUR": "release+fully_static", + "CONFIGURE_ARGS": "--disable-ld-override --with-intree-gmp --with-system-libffi", + "CROSS_TARGET": "wasm32-wasi", + "HADRIAN_ARGS": "--docs=none", + "TEST_ENV": "x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static", + "XZ_OPT": "-9" + } + }, + "nightly-x86_64-linux-alpine3_12-int_native-cross_wasm32-wasi-release+fully_static": { + "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-alpine3_12-int_native-cross_wasm32-wasi-release+fully_static.tar.xz", + "junit.xml" + ], + "reports": { + "junit": "junit.xml" + }, + "when": "always" + }, + "cache": { + "key": "x86_64-linux-alpine3_12-$CACHE_REV", + "paths": [ + "cabal-cache", + "toolchain" + ] + }, + "dependencies": [], + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$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\")", + "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": "native", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-cross_wasm32-wasi-release+fully_static", + "BUILD_FLAVOUR": "release+fully_static", + "CONFIGURE_ARGS": "--disable-ld-override --with-intree-gmp --with-system-libffi", + "CROSS_TARGET": "wasm32-wasi", + "HADRIAN_ARGS": "--docs=none", + "TEST_ENV": "x86_64-linux-alpine3_12-int_native-cross_wasm32-wasi-release+fully_static", + "XZ_OPT": "-9" + } + }, "nightly-x86_64-linux-alpine3_12-int_native-validate+fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", @@ -642,6 +706,7 @@ } ], "script": [ + "sudo apk del --purge glibc*", "sudo chown ghc:ghc -R .", ".gitlab/ci.sh setup", ".gitlab/ci.sh configure", @@ -664,6 +729,67 @@ "XZ_OPT": "-9" } }, + "nightly-x86_64-linux-alpine3_12-unreg-cross_wasm32-wasi-release+fully_static": { + "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-alpine3_12-unreg-cross_wasm32-wasi-release+fully_static.tar.xz", + "junit.xml" + ], + "reports": { + "junit": "junit.xml" + }, + "when": "always" + }, + "cache": { + "key": "x86_64-linux-alpine3_12-$CACHE_REV", + "paths": [ + "cabal-cache", + "toolchain" + ] + }, + "dependencies": [], + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$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\")", + "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-alpine3_12-unreg-cross_wasm32-wasi-release+fully_static", + "BUILD_FLAVOUR": "release+fully_static", + "CONFIGURE_ARGS": "--disable-ld-override --enable-unregisterised --with-intree-gmp --with-system-libffi", + "CROSS_TARGET": "wasm32-wasi", + "HADRIAN_ARGS": "--docs=none", + "TEST_ENV": "x86_64-linux-alpine3_12-unreg-cross_wasm32-wasi-release+fully_static", + "XZ_OPT": "-9" + } + }, "nightly-x86_64-linux-alpine3_12-validate+fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", @@ -704,6 +830,7 @@ } ], "script": [ + "sudo apk del --purge glibc*", "sudo chown ghc:ghc -R .", ".gitlab/ci.sh setup", ".gitlab/ci.sh configure", @@ -2234,6 +2361,130 @@ "XZ_OPT": "-9" } }, + "release-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static": { + "after_script": [ + ".gitlab/ci.sh save_cache", + ".gitlab/ci.sh clean", + "cat ci_timings" + ], + "allow_failure": false, + "artifacts": { + "expire_in": "1 year", + "paths": [ + "ghc-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz", + "junit.xml" + ], + "reports": { + "junit": "junit.xml" + }, + "when": "always" + }, + "cache": { + "key": "x86_64-linux-alpine3_12-$CACHE_REV", + "paths": [ + "cabal-cache", + "toolchain" + ] + }, + "dependencies": [], + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$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\")", + "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-alpine3_12-cross_wasm32-wasi-release+fully_static", + "BUILD_FLAVOUR": "release+fully_static", + "CONFIGURE_ARGS": "--disable-ld-override --with-intree-gmp --with-system-libffi", + "CROSS_TARGET": "wasm32-wasi", + "HADRIAN_ARGS": "--docs=none", + "IGNORE_PERF_FAILURES": "all", + "TEST_ENV": "x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static", + "XZ_OPT": "-9" + } + }, + "release-x86_64-linux-alpine3_12-int_native-cross_wasm32-wasi-release+fully_static": { + "after_script": [ + ".gitlab/ci.sh save_cache", + ".gitlab/ci.sh clean", + "cat ci_timings" + ], + "allow_failure": false, + "artifacts": { + "expire_in": "1 year", + "paths": [ + "ghc-x86_64-linux-alpine3_12-int_native-cross_wasm32-wasi-release+fully_static.tar.xz", + "junit.xml" + ], + "reports": { + "junit": "junit.xml" + }, + "when": "always" + }, + "cache": { + "key": "x86_64-linux-alpine3_12-$CACHE_REV", + "paths": [ + "cabal-cache", + "toolchain" + ] + }, + "dependencies": [], + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$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\")", + "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": "native", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-cross_wasm32-wasi-release+fully_static", + "BUILD_FLAVOUR": "release+fully_static", + "CONFIGURE_ARGS": "--disable-ld-override --with-intree-gmp --with-system-libffi", + "CROSS_TARGET": "wasm32-wasi", + "HADRIAN_ARGS": "--docs=none", + "IGNORE_PERF_FAILURES": "all", + "TEST_ENV": "x86_64-linux-alpine3_12-int_native-cross_wasm32-wasi-release+fully_static", + "XZ_OPT": "-9" + } + }, "release-x86_64-linux-alpine3_12-int_native-release+fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", @@ -2274,6 +2525,7 @@ } ], "script": [ + "sudo apk del --purge glibc*", "sudo chown ghc:ghc -R .", ".gitlab/ci.sh setup", ".gitlab/ci.sh configure", @@ -2337,6 +2589,7 @@ } ], "script": [ + "sudo apk del --purge glibc*", "sudo chown ghc:ghc -R .", ".gitlab/ci.sh setup", ".gitlab/ci.sh configure", @@ -2360,6 +2613,68 @@ "XZ_OPT": "-9" } }, + "release-x86_64-linux-alpine3_12-unreg-cross_wasm32-wasi-release+fully_static": { + "after_script": [ + ".gitlab/ci.sh save_cache", + ".gitlab/ci.sh clean", + "cat ci_timings" + ], + "allow_failure": false, + "artifacts": { + "expire_in": "1 year", + "paths": [ + "ghc-x86_64-linux-alpine3_12-unreg-cross_wasm32-wasi-release+fully_static.tar.xz", + "junit.xml" + ], + "reports": { + "junit": "junit.xml" + }, + "when": "always" + }, + "cache": { + "key": "x86_64-linux-alpine3_12-$CACHE_REV", + "paths": [ + "cabal-cache", + "toolchain" + ] + }, + "dependencies": [], + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$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\")", + "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-alpine3_12-unreg-cross_wasm32-wasi-release+fully_static", + "BUILD_FLAVOUR": "release+fully_static", + "CONFIGURE_ARGS": "--disable-ld-override --enable-unregisterised --with-intree-gmp --with-system-libffi", + "CROSS_TARGET": "wasm32-wasi", + "HADRIAN_ARGS": "--docs=none", + "IGNORE_PERF_FAILURES": "all", + "TEST_ENV": "x86_64-linux-alpine3_12-unreg-cross_wasm32-wasi-release+fully_static", + "XZ_OPT": "-9" + } + }, "release-x86_64-linux-centos7-release+no_split_sections": { "after_script": [ ".gitlab/ci.sh save_cache", @@ -3152,17 +3467,17 @@ "TEST_ENV": "x86_64-freebsd13-validate" } }, - "x86_64-linux-alpine3_12-int_native-validate+fully_static": { + "x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", "cat ci_timings" ], - "allow_failure": true, + "allow_failure": false, "artifacts": { "expire_in": "2 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static.tar.xz", + "ghc-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz", "junit.xml" ], "reports": { @@ -3187,7 +3502,7 @@ ], "rules": [ { - "if": "($CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null) && (\"true\" == \"true\") && (\"true\" == \"true\") && (\"disabled\" != \"disabled\")", + "if": "($CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null) && (\"true\" == \"true\") && (\"true\" == \"true\") && (\"true\" == \"true\")", "when": "on_success" } ], @@ -3203,14 +3518,13 @@ "x86_64-linux" ], "variables": { - "BIGNUM_BACKEND": "native", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static", - "BROKEN_TESTS": "encoding004 T10458 ghcilink002 linker_unload_native", - "BUILD_FLAVOUR": "validate+fully_static", - "CONFIGURE_ARGS": "--disable-ld-override ", - "HADRIAN_ARGS": "--docs=no-sphinx", - "INSTALL_CONFIGURE_ARGS": "--disable-ld-override", - "TEST_ENV": "x86_64-linux-alpine3_12-int_native-validate+fully_static" + "BIGNUM_BACKEND": "gmp", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static", + "BUILD_FLAVOUR": "release+fully_static", + "CONFIGURE_ARGS": "--disable-ld-override --with-intree-gmp --with-system-libffi", + "CROSS_TARGET": "wasm32-wasi", + "HADRIAN_ARGS": "--docs=none", + "TEST_ENV": "x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static" } }, "x86_64-linux-alpine3_12-validate+fully_static": { @@ -3253,6 +3567,7 @@ } ], "script": [ + "sudo apk del --purge glibc*", "sudo chown ghc:ghc -R .", ".gitlab/ci.sh setup", ".gitlab/ci.sh configure", @@ -3274,65 +3589,6 @@ "TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static" } }, - "x86_64-linux-centos7-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-centos7-validate.tar.xz", - "junit.xml" - ], - "reports": { - "junit": "junit.xml" - }, - "when": "always" - }, - "cache": { - "key": "x86_64-linux-centos7-$CACHE_REV", - "paths": [ - "cabal-cache", - "toolchain" - ] - }, - "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$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\") && (\"disabled\" != \"disabled\")", - "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-centos7-validate", - "BUILD_FLAVOUR": "validate", - "CONFIGURE_ARGS": "", - "HADRIAN_ARGS": "--docs=no-sphinx", - "TEST_ENV": "x86_64-linux-centos7-validate" - } - }, "x86_64-linux-deb10-int_native-validate": { "after_script": [ ".gitlab/ci.sh save_cache", @@ -3567,64 +3823,6 @@ "TEST_ENV": "x86_64-linux-deb10-unreg-validate" } }, - "x86_64-linux-deb10-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-deb10-validate.tar.xz", - "junit.xml" - ], - "reports": { - "junit": "junit.xml" - }, - "when": "always" - }, - "cache": { - "key": "x86_64-linux-deb10-$CACHE_REV", - "paths": [ - "cabal-cache", - "toolchain" - ] - }, - "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$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\") && (\"disabled\" != \"disabled\")", - "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-deb10-validate", - "BUILD_FLAVOUR": "validate", - "CONFIGURE_ARGS": "", - "TEST_ENV": "x86_64-linux-deb10-validate" - } - }, "x86_64-linux-deb10-validate+debug_info": { "after_script": [ ".gitlab/ci.sh save_cache", @@ -3922,122 +4120,6 @@ "TEST_ENV": "x86_64-linux-deb11-int_native-cross_js-unknown-ghcjs-validate" } }, - "x86_64-linux-deb11-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-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\") && (\"disabled\" != \"disabled\")", - "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-validate", - "BUILD_FLAVOUR": "validate", - "CONFIGURE_ARGS": "", - "TEST_ENV": "x86_64-linux-deb11-validate" - } - }, - "x86_64-linux-deb9-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-deb9-validate.tar.xz", - "junit.xml" - ], - "reports": { - "junit": "junit.xml" - }, - "when": "always" - }, - "cache": { - "key": "x86_64-linux-deb9-$CACHE_REV", - "paths": [ - "cabal-cache", - "toolchain" - ] - }, - "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$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\") && (\"disabled\" != \"disabled\")", - "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-deb9-validate", - "BUILD_FLAVOUR": "validate", - "CONFIGURE_ARGS": "", - "TEST_ENV": "x86_64-linux-deb9-validate" - } - }, "x86_64-linux-fedora33-release": { "after_script": [ ".gitlab/ci.sh save_cache", @@ -4098,243 +4180,6 @@ "TEST_ENV": "x86_64-linux-fedora33-release" } }, - "x86_64-linux-fedora33-release-hackage": { - "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-fedora33-release.tar.xz", - "junit.xml" - ], - "reports": { - "junit": "junit.xml" - }, - "when": "always" - }, - "cache": { - "key": "x86_64-linux-fedora33-$CACHE_REV", - "paths": [ - "cabal-cache", - "toolchain" - ] - }, - "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$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\") && (\"disabled\" != \"disabled\")", - "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-fedora33-release", - "BUILD_FLAVOUR": "release", - "CONFIGURE_ARGS": "", - "HADRIAN_ARGS": "--haddock-base-url", - "LLC": "/bin/false", - "OPT": "/bin/false", - "TEST_ENV": "x86_64-linux-fedora33-release" - } - }, - "x86_64-linux-fedora33-validate+debug_info": { - "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-fedora33-validate+debug_info.tar.xz", - "junit.xml" - ], - "reports": { - "junit": "junit.xml" - }, - "when": "always" - }, - "cache": { - "key": "x86_64-linux-fedora33-$CACHE_REV", - "paths": [ - "cabal-cache", - "toolchain" - ] - }, - "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$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\") && (\"disabled\" != \"disabled\")", - "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-fedora33-validate+debug_info", - "BUILD_FLAVOUR": "validate+debug_info", - "CONFIGURE_ARGS": "", - "LLC": "/bin/false", - "OPT": "/bin/false", - "TEST_ENV": "x86_64-linux-fedora33-validate+debug_info" - } - }, - "x86_64-linux-ubuntu20_04-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-ubuntu20_04-validate.tar.xz", - "junit.xml" - ], - "reports": { - "junit": "junit.xml" - }, - "when": "always" - }, - "cache": { - "key": "x86_64-linux-ubuntu20_04-$CACHE_REV", - "paths": [ - "cabal-cache", - "toolchain" - ] - }, - "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$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\") && (\"disabled\" != \"disabled\")", - "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-ubuntu20_04-validate", - "BUILD_FLAVOUR": "validate", - "CONFIGURE_ARGS": "", - "TEST_ENV": "x86_64-linux-ubuntu20_04-validate" - } - }, - "x86_64-windows-int_native-validate": { - "after_script": [ - "bash .gitlab/ci.sh save_cache", - "bash .gitlab/ci.sh clean" - ], - "allow_failure": false, - "artifacts": { - "expire_in": "2 weeks", - "paths": [ - "ghc-x86_64-windows-int_native-validate.tar.xz", - "junit.xml" - ], - "reports": { - "junit": "junit.xml" - }, - "when": "always" - }, - "cache": { - "key": "no-caching", - "paths": [] - }, - "dependencies": [], - "image": null, - "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\") && (\"disabled\" != \"disabled\")", - "when": "on_success" - } - ], - "script": [ - "bash .gitlab/ci.sh setup", - "bash .gitlab/ci.sh configure", - "bash .gitlab/ci.sh build_hadrian", - "bash .gitlab/ci.sh test_hadrian" - ], - "stage": "full-build", - "tags": [ - "new-x86_64-windows" - ], - "variables": { - "BIGNUM_BACKEND": "native", - "BIN_DIST_NAME": "ghc-x86_64-windows-int_native-validate", - "BUILD_FLAVOUR": "validate", - "CABAL_INSTALL_VERSION": "3.8.1.0", - "CONFIGURE_ARGS": "", - "GHC_VERSION": "9.4.3", - "HADRIAN_ARGS": "--docs=no-sphinx", - "LANG": "en_US.UTF-8", - "MSYSTEM": "CLANG64", - "TEST_ENV": "x86_64-windows-int_native-validate" - } - }, "x86_64-windows-validate": { "after_script": [ "bash .gitlab/ci.sh save_cache", |