From ea90e61dc3c6ba0433e008284dc6c3970ead98a7 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Fri, 5 Aug 2022 16:13:48 -0400 Subject: gitlab-ci: Bump to use freebsd13 runners --- .gitlab/ci.sh | 9 +++++---- .gitlab/gen_ci.hs | 28 ++++++++++++++-------------- .gitlab/jobs.yaml | 42 +++++++++++++++++++++--------------------- 3 files changed, 40 insertions(+), 39 deletions(-) diff --git a/.gitlab/ci.sh b/.gitlab/ci.sh index 8ff9c688cd..f55d4e1f92 100755 --- a/.gitlab/ci.sh +++ b/.gitlab/ci.sh @@ -207,6 +207,9 @@ function set_toolchain_paths() { CABAL="$toolchain/bin/cabal$exe" HAPPY="$toolchain/bin/happy$exe" ALEX="$toolchain/bin/alex$exe" + if [ "$(uname)" = "FreeBSD" ]; then + GHC=/usr/local/bin/ghc + fi ;; nix) if [[ ! -f toolchain.sh ]]; then @@ -288,7 +291,7 @@ function fetch_ghc() { cp -r ghc-${GHC_VERSION}*/* "$toolchain" ;; *) - pushd "ghc-${GHC_VERSION}*" + pushd ghc-${GHC_VERSION}* ./configure --prefix="$toolchain" "$MAKE" install popd @@ -326,9 +329,7 @@ function fetch_cabal() { local base_url="https://downloads.haskell.org/~cabal/cabal-install-$v/" case "$(uname)" in Darwin) cabal_url="$base_url/cabal-install-$v-x86_64-apple-darwin17.7.0.tar.xz" ;; - FreeBSD) - #cabal_url="$base_url/cabal-install-$v-x86_64-portbld-freebsd.tar.xz" ;; - cabal_url="http://home.smart-cactus.org/~ben/ghc/cabal-install-3.0.0.0-x86_64-portbld-freebsd.tar.xz" ;; + FreeBSD) cabal_url="$base_url/cabal-install-$v-x86_64-freebsd13.tar.xz" ;; *) fail "don't know where to fetch cabal-install for $(uname)" esac echo "Fetching cabal-install from $cabal_url" diff --git a/.gitlab/gen_ci.hs b/.gitlab/gen_ci.hs index 21b12593e1..2e373121f2 100755 --- a/.gitlab/gen_ci.hs +++ b/.gitlab/gen_ci.hs @@ -92,7 +92,7 @@ names of jobs to update these other places. data Opsys = Linux LinuxDistro | Darwin - | FreeBSD + | FreeBSD13 | Windows deriving (Eq) data LinuxDistro @@ -223,7 +223,7 @@ runnerTag arch (Linux distro) = runnerTag AArch64 Darwin = "aarch64-darwin" runnerTag Amd64 Darwin = "x86_64-darwin-m1" runnerTag Amd64 Windows = "new-x86_64-windows" -runnerTag Amd64 FreeBSD = "x86_64-freebsd" +runnerTag Amd64 FreeBSD13 = "x86_64-freebsd13" tags :: Arch -> Opsys -> BuildConfig -> [String] tags arch opsys _bc = [runnerTag arch opsys] -- Tag for which runners we can use @@ -242,7 +242,7 @@ distroName Alpine = "alpine3_12" opsysName :: Opsys -> String opsysName (Linux distro) = "linux-" ++ distroName distro opsysName Darwin = "darwin" -opsysName FreeBSD = "freebsd" +opsysName FreeBSD13 = "freebsd13" opsysName Windows = "windows" archName :: Arch -> String @@ -313,7 +313,7 @@ type Variables = M.MonoidalMap String [String] a =: b = M.singleton a [b] opsysVariables :: Arch -> Opsys -> Variables -opsysVariables _ FreeBSD = mconcat +opsysVariables _ FreeBSD13 = mconcat [ -- N.B. we use iconv from ports as I see linker errors when we attempt -- to use the "native" iconv embedded in libc as suggested by the -- porting guide [1]. @@ -321,7 +321,7 @@ opsysVariables _ FreeBSD = mconcat "CONFIGURE_ARGS" =: "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib" , "HADRIAN_ARGS" =: "--docs=no-sphinx" , "GHC_VERSION" =: "9.2.2" - , "CABAL_INSTALL_VERSION" =: "3.2.0.0" + , "CABAL_INSTALL_VERSION" =: "3.6.2.0" ] opsysVariables ARMv7 (Linux distro) = distroVariables distro <> @@ -489,12 +489,12 @@ instance ToJSON OnOffRules where -- | A Rule corresponds to some condition which must be satisifed in order to -- run the job. -data Rule = FastCI -- ^ Run this job when the fast-ci label is set - | ReleaseOnly -- ^ Only run this job in a release pipeline - | Nightly -- ^ Only run this job in the nightly pipeline - | LLVMBackend -- ^ Only run this job when the "LLVM backend" label is present - | FreeBSDTag -- ^ Only run this job when the "FreeBSD" label is set. - | Disable -- ^ Don't run this job. +data Rule = FastCI -- ^ Run this job when the fast-ci label is set + | ReleaseOnly -- ^ Only run this job in a release pipeline + | Nightly -- ^ Only run this job in the nightly pipeline + | LLVMBackend -- ^ Only run this job when the "LLVM backend" label is present + | FreeBSDLabel -- ^ Only run this job when the "FreeBSD" label is set. + | Disable -- ^ Don't run this job. deriving (Bounded, Enum, Ord, Eq) -- A constant evaluating to True because gitlab doesn't support "true" in the @@ -512,8 +512,8 @@ ruleString On FastCI = true ruleString Off FastCI = "$CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/" ruleString On LLVMBackend = "$CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/" ruleString Off LLVMBackend = true -ruleString On FreeBSDTag = "$CI_MERGE_REQUEST_LABELS =~ /.*FreeBSD.*/" -ruleString Off FreeBSDTag = true +ruleString On FreeBSDLabel = "$CI_MERGE_REQUEST_LABELS =~ /.*FreeBSD.*/" +ruleString Off FreeBSDLabel = true ruleString On ReleaseOnly = "$RELEASE_JOB == \"yes\"" ruleString Off ReleaseOnly = "$RELEASE_JOB != \"yes\"" ruleString On Nightly = "$NIGHTLY" @@ -781,7 +781,7 @@ jobs = M.fromList $ concatMap flattenJobGroup $ , fastCI (standardBuilds Amd64 Windows) , disableValidate (standardBuildsWithConfig Amd64 Windows nativeInt) , standardBuilds Amd64 Darwin - , allowFailureGroup (addValidateRule FreeBSDTag (standardBuilds Amd64 FreeBSD)) + , allowFailureGroup (addValidateRule FreeBSDLabel (standardBuilds Amd64 FreeBSD13)) , standardBuilds AArch64 Darwin , standardBuilds AArch64 (Linux Debian10) , disableValidate (standardBuilds AArch64 (Linux Debian11)) diff --git a/.gitlab/jobs.yaml b/.gitlab/jobs.yaml index 10247aba4b..b8fff93bf4 100644 --- a/.gitlab/jobs.yaml +++ b/.gitlab/jobs.yaml @@ -658,7 +658,7 @@ "ac_cv_func_utimensat": "no" } }, - "nightly-x86_64-freebsd-validate": { + "nightly-x86_64-freebsd13-validate": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -668,7 +668,7 @@ "artifacts": { "expire_in": "8 weeks", "paths": [ - "ghc-x86_64-freebsd-validate.tar.xz", + "ghc-x86_64-freebsd13-validate.tar.xz", "junit.xml" ], "reports": { @@ -677,7 +677,7 @@ "when": "always" }, "cache": { - "key": "x86_64-freebsd-$CACHE_REV", + "key": "x86_64-freebsd13-$CACHE_REV", "paths": [ "cabal-cache", "toolchain" @@ -705,17 +705,17 @@ ], "stage": "full-build", "tags": [ - "x86_64-freebsd" + "x86_64-freebsd13" ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-freebsd-validate", + "BIN_DIST_NAME": "ghc-x86_64-freebsd13-validate", "BUILD_FLAVOUR": "validate", - "CABAL_INSTALL_VERSION": "3.2.0.0", + "CABAL_INSTALL_VERSION": "3.6.2.0", "CONFIGURE_ARGS": "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib ", "GHC_VERSION": "9.2.2", "HADRIAN_ARGS": "--docs=no-sphinx", - "TEST_ENV": "x86_64-freebsd-validate", + "TEST_ENV": "x86_64-freebsd13-validate", "XZ_OPT": "-9" } }, @@ -2288,7 +2288,7 @@ "ac_cv_func_utimensat": "no" } }, - "release-x86_64-freebsd-release": { + "release-x86_64-freebsd13-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2298,7 +2298,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-freebsd-release.tar.xz", + "ghc-x86_64-freebsd13-release.tar.xz", "junit.xml" ], "reports": { @@ -2307,7 +2307,7 @@ "when": "always" }, "cache": { - "key": "x86_64-freebsd-$CACHE_REV", + "key": "x86_64-freebsd13-$CACHE_REV", "paths": [ "cabal-cache", "toolchain" @@ -2335,18 +2335,18 @@ ], "stage": "full-build", "tags": [ - "x86_64-freebsd" + "x86_64-freebsd13" ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-freebsd-release", + "BIN_DIST_NAME": "ghc-x86_64-freebsd13-release", "BUILD_FLAVOUR": "release", - "CABAL_INSTALL_VERSION": "3.2.0.0", + "CABAL_INSTALL_VERSION": "3.6.2.0", "CONFIGURE_ARGS": "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib ", "GHC_VERSION": "9.2.2", "HADRIAN_ARGS": "--docs=no-sphinx", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "x86_64-freebsd-release", + "TEST_ENV": "x86_64-freebsd13-release", "XZ_OPT": "-9" } }, @@ -3208,7 +3208,7 @@ "ac_cv_func_utimensat": "no" } }, - "x86_64-freebsd-validate": { + "x86_64-freebsd13-validate": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -3218,7 +3218,7 @@ "artifacts": { "expire_in": "2 weeks", "paths": [ - "ghc-x86_64-freebsd-validate.tar.xz", + "ghc-x86_64-freebsd13-validate.tar.xz", "junit.xml" ], "reports": { @@ -3227,7 +3227,7 @@ "when": "always" }, "cache": { - "key": "x86_64-freebsd-$CACHE_REV", + "key": "x86_64-freebsd13-$CACHE_REV", "paths": [ "cabal-cache", "toolchain" @@ -3255,17 +3255,17 @@ ], "stage": "full-build", "tags": [ - "x86_64-freebsd" + "x86_64-freebsd13" ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-freebsd-validate", + "BIN_DIST_NAME": "ghc-x86_64-freebsd13-validate", "BUILD_FLAVOUR": "validate", - "CABAL_INSTALL_VERSION": "3.2.0.0", + "CABAL_INSTALL_VERSION": "3.6.2.0", "CONFIGURE_ARGS": "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib ", "GHC_VERSION": "9.2.2", "HADRIAN_ARGS": "--docs=no-sphinx", - "TEST_ENV": "x86_64-freebsd-validate" + "TEST_ENV": "x86_64-freebsd13-validate" } }, "x86_64-linux-alpine3_12-int_native-validate+fully_static": { -- cgit v1.2.1