From 961e48be04970b91de9204911eaa260b1e470405 Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Wed, 15 Sep 2021 10:31:54 +0100 Subject: [PATCH 01/12] rewrite paths to configure --- Cabal/Distribution/Simple.hs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/Cabal/Distribution/Simple.hs b/Cabal/Distribution/Simple.hs index 5543765a10d..0999fbe83d6 100644 --- a/Cabal/Distribution/Simple.hs +++ b/Cabal/Distribution/Simple.hs @@ -1,6 +1,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE LambdaCase #-} +{-# LANGUAGE CPP #-} ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple @@ -98,7 +99,11 @@ import Distribution.System (buildPlatform) import System.Environment (getArgs, getProgName) import System.Directory (removeFile, doesFileExist ,doesDirectoryExist, removeDirectoryRecursive) -import System.FilePath (searchPathSeparator, takeDirectory, (), splitDirectories, dropDrive) +import System.FilePath (searchPathSeparator, takeDirectory, (), + splitDirectories, dropDrive) +#ifdef mingw32_HOST_OS +import System.FilePath (normalise, splitDrive) +#endif import Distribution.Compat.ResponseFile (expandResponse) import Distribution.Compat.Directory (makeAbsolute) import Distribution.Compat.Environment (getEnvironment) @@ -717,7 +722,7 @@ runConfigureScript verbosity backwardsCompatHack flags lbi = do -- TODO: We don't check for colons, tildes or leading dashes. We -- also should check the builddir's path, destdir, and all other -- paths as well. - let configureFile' = intercalate "/" $ splitDirectories configureFile + let configureFile' = toUnix configureFile for_ badAutoconfCharacters $ \(c, cname) -> when (c `elem` dropDrive configureFile') $ warn verbosity $ concat @@ -757,6 +762,19 @@ runConfigureScript verbosity backwardsCompatHack flags lbi = do ++ "If you are not on Windows, ensure that an 'sh' command " ++ "is discoverable in your path." +-- | Convert Windows path to Unix ones +toUnix :: String -> String +#ifdef mingw32_HOST_OS +toUnix s = let tmp = normalise s + (l, rest) = case splitDrive tmp of + ([], x) -> ("/" , x) + (h:_, x) -> ('/':h:"/", x) + parts = splitDirectories rest + in l ++ intercalate "/" parts +#else +toUnix s = intercalate "/" $ splitDirectories s +#endif + badAutoconfCharacters :: [(Char, String)] badAutoconfCharacters = [ (' ', "space") From 03a8f6ae221a517f5a0969a86d773e4a83d085c5 Mon Sep 17 00:00:00 2001 From: Emily Pillmore Date: Thu, 9 Sep 2021 17:19:05 -0600 Subject: [PATCH 02/12] add gitlab ci integration to cabal --- .gitlab-ci.yml | 61 ++++++++++++++++++++++++ .gitlab/ci.sh | 111 +++++++++++++++++++++++++++++++++++++++++++ .gitlab/common.sh | 117 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 289 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 .gitlab/ci.sh create mode 100644 .gitlab/common.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000000..8e688557e1b --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,61 @@ +variables: + # Commit of ghc/ci-images repository from which to pull Docker images + DOCKER_REV: "853f348f9caf38b08740b280296fbd34e09abb3a" + + GHC_VERSION: 8.10.7 + CABAL_INSTALL_VERSION: 3.2.0.0 + +workflow: + rules: + - if: $CI_COMMIT_TAG + when: always + - if: '$CI_PIPELINE_SOURCE == "web"' + when: always + - when: never + +.build: + script: + - bash .gitlab/ci.sh + artifacts: + expire_in: 2 week + paths: + - out + +build-aarch64-linux-deb10: + extends: .build + tags: + - aarch64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV" + +build-armv7-linux-deb10: + extends: .build + tags: + - armv7-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV" + +build-x86_64-linux: + extends: .build + tags: + - x86_64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV" + +build-x86_64-linux-alpine: + extends: .build + tags: + - x86_64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV" + +build-x86_64-freebsd: + extends: .build + tags: + - x86_64-freebsd + +build-x86_64-darwin: + extends: .build + tags: + - x86_64-darwin + +build-x86_64-windows: + extends: .build + tags: + - new-x86_64-windows \ No newline at end of file diff --git a/.gitlab/ci.sh b/.gitlab/ci.sh new file mode 100644 index 00000000000..3f981dbd10c --- /dev/null +++ b/.gitlab/ci.sh @@ -0,0 +1,111 @@ +#!/usr/bin/env bash + +set -Eeuo pipefail + +TOP="$(pwd)" +source "$TOP/.gitlab/common.sh" + +# We don't have sudo access in GitLab CI, so we can't just dump binaries in +# the usual PATH locations. +toolchain="$(pwd)/toolchain" +mkdir -p "$toolchain/bin" +export PATH="$toolchain/bin:$PATH" + +export CABAL_DIR="$TOP/cabal" +mkdir -p "$CABAL_DIR" + +# Platform-specific bits +MAKE="make" +case "$(uname)" in + MSYS_*|MINGW*) + CABAL_DIR="$(cygpath -w "$CABAL_DIR")" + ;; + FreeBSD) + MAKE="gmake" + ;; +esac + +fetch_cabal_install_unix() { + local cabal_url="$1" + run curl -L -o cabal.tar.xz "$cabal_url" + run tar --directory "$toolchain/bin/" -xf cabal.tar.xz cabal + chmod +x "$toolchain/bin/cabal" + CABAL="$toolchain/bin/cabal" +} + +setup_cabal_install() { + if [ -z "${CABAL:-}" ]; then + info "Fetching GHC..." + case "$(uname)" in + FreeBSD) + fetch_cabal_install_unix "https://hasufell.de/d/d3e215db133e4fcaa61e/files/?p=/cabal-install-$CABAL_INSTALL_VERSION-x86_64-portbld-freebsd.tar.xz&dl=1" ;; + Darwin) + fetch_cabal_install_unix "https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL_VERSION/cabal-install-$CABAL_INSTALL_VERSION-x86_64-apple-darwin17.7.0.tar.xz" ;; + MSYS_*|MINGW*) + cabal_url="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL_VERSION/cabal-install-$CABAL_INSTALL_VERSION-x86_64-unknown-mingw32.zip" + run curl -L -o cabal.zip "$cabal_url" + run unzip cabal.zip + cp cabal.exe "$toolchain/bin/cabal.exe" + chmod +x "$toolchain/bin/cabal.exe" + CABAL="$toolchain/bin/cabal.exe" + ;; + *) fail "no cabal-install bindist for $(uname)" + esac + + fi + export CABAL + run "$CABAL" --version +} + + +fetch_ghc_unix() { + local ghc_url="$1" + run curl -sSfL -o ghc.tar.xz "$ghc_url" + run tar -xf ghc.tar.xz + + pushd "ghc-${GHC_VERSION}" + run ./configure --prefix="$toolchain" + run "$MAKE" install + popd + GHC="$toolchain/bin/ghc" +} + +setup_ghc() { + if [ -z "${GHC:-}" ]; then + info "Fetching GHC..." + case "$(uname)" in + FreeBSD) + fetch_ghc_unix "https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-unknown-freebsd.tar.xz" ;; + Darwin) + fetch_ghc_unix "https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-apple-darwin.tar.xz" ;; + MSYS_*|MINGW*) + ghc_url="https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-unknown-mingw32.tar.xz" + run curl -sSfL -o ghc.tar.xz "$ghc_url" + run tar -xf ghc.tar.xz + cp -R ghc-$GHC_VERSION/* "$toolchain" + GHC="$toolchain/bin/ghc.exe" + run "$GHC" --version + GHC="$(cygpath -w $GHC)" + return + ;; + *) fail "no GHC bindist for $(uname)" + esac + fi + + export GHC + run "$GHC" --version +} + +setup_cabal_install +setup_ghc + +run "$CABAL" update +run "$CABAL" v2-install cabal-install \ + -w "$GHC" \ + --installdir="$TOP/out" \ + --install-method=copy \ + --overwrite-policy=always \ + --enable-executable-static \ + --disable-profiling \ + --enable-split-sections \ + --enable-executable-stripping diff --git a/.gitlab/common.sh b/.gitlab/common.sh new file mode 100644 index 00000000000..36d7ee57509 --- /dev/null +++ b/.gitlab/common.sh @@ -0,0 +1,117 @@ +# Common bash utilities +# ---------------------- + +# Colors +BLACK="0;30" +GRAY="1;30" +RED="0;31" +LT_RED="1;31" +BROWN="0;33" +LT_BROWN="1;33" +GREEN="0;32" +LT_GREEN="1;32" +BLUE="0;34" +LT_BLUE="1;34" +PURPLE="0;35" +LT_PURPLE="1;35" +CYAN="0;36" +LT_CYAN="1;36" +WHITE="1;37" +LT_GRAY="0;37" + +# GitLab Pipelines log section delimiters +# https://gitlab.com/gitlab-org/gitlab-foss/issues/14664 +start_section() { + name="$1" + echo -e "section_start:$(date +%s):$name\015\033[0K" +} + +end_section() { + name="$1" + echo -e "section_end:$(date +%s):$name\015\033[0K" +} + +echo_color() { + local color="$1" + local msg="$2" + echo -e "\033[${color}m${msg}\033[0m" +} + +error() { echo_color "${RED}" "$1"; } +warn() { echo_color "${LT_BROWN}" "$1"; } +info() { echo_color "${LT_BLUE}" "$1"; } + +fail() { error "error: $1"; exit 1; } + +function run() { + info "Running $*..." + "$@" || ( error "$* failed"; return 1; ) +} + .gitlab-ci.yml ++ +61 +- +0 + +Viewed +variables: + # Commit of ghc/ci-images repository from which to pull Docker images + DOCKER_REV: "853f348f9caf38b08740b280296fbd34e09abb3a" + + GHC_VERSION: 8.10.7 + CABAL_INSTALL_VERSION: 3.2.0.0 + +workflow: + rules: + - if: $CI_COMMIT_TAG + when: always + - if: '$CI_PIPELINE_SOURCE == "web"' + when: always + - when: never + +.build: + script: + - bash .gitlab/ci.sh + artifacts: + expire_in: 2 week + paths: + - out + +build-aarch64-linux-deb10: + extends: .build + tags: + - aarch64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV" + +build-armv7-linux-deb10: + extends: .build + tags: + - armv7-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV" + +build-x86_64-linux: + extends: .build + tags: + - x86_64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV" + +build-x86_64-linux-alpine: + extends: .build + tags: + - x86_64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV" + +build-x86_64-freebsd: + extends: .build + tags: + - x86_64-freebsd + +build-x86_64-darwin: + extends: .build + tags: + - x86_64-darwin + +build-x86_64-windows: + extends: .build + tags: + - new-x86_64-windows From e730b7248e238dc51c7f6fb59ccd14c645abee8a Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Sat, 11 Sep 2021 00:31:39 +0200 Subject: [PATCH 03/12] Add darwin aarch64 support to CI (#7636) --- .gitlab-ci.yml | 31 +++++++++++-- .gitlab/ci.sh | 112 +++++++++------------------------------------- .gitlab/shell.nix | 90 +++++++++++++++++++++++++++++++++++++ cabal.project | 3 +- 4 files changed, 141 insertions(+), 95 deletions(-) mode change 100644 => 100755 .gitlab/ci.sh create mode 100644 .gitlab/shell.nix diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8e688557e1b..356ff1c7aa1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,7 +3,7 @@ variables: DOCKER_REV: "853f348f9caf38b08740b280296fbd34e09abb3a" GHC_VERSION: 8.10.7 - CABAL_INSTALL_VERSION: 3.2.0.0 + CABAL_INSTALL_VERSION: 3.4.0.0 workflow: rules: @@ -48,14 +48,39 @@ build-x86_64-linux-alpine: build-x86_64-freebsd: extends: .build tags: - - x86_64-freebsd + - x86_64-freebsd13 build-x86_64-darwin: extends: .build tags: - x86_64-darwin +build-aarch64-darwin: + tags: + - aarch64-darwin-m1 + script: | + set -Eeuo pipefail + function runInNixShell() { + time nix-shell $CI_PROJECT_DIR/.gitlab/shell.nix \ + -I nixpkgs=https://github.com/angerman/nixpkgs/archive/75f7281738b.tar.gz \ + --argstr system "aarch64-darwin" \ + --pure \ + --keep CI_PROJECT_DIR \ + --keep MACOSX_DEPLOYMENT_TARGET \ + --keep GHC_VERSION \ + --keep CABAL_INSTALL_VERSION \ + --run "$1" 2>&1 + } + runInNixShell "cabal update && mkdir vendored && cd vendored && cabal unpack network-3.1.2.1 && cd network-3.1.2.1 && autoreconf -fi" 2>&1 + runInNixShell "./.gitlab/ci.sh" 2>&1 + variables: + MACOSX_DEPLOYMENT_TARGET: "10.7" + artifacts: + expire_in: 2 week + paths: + - out + build-x86_64-windows: extends: .build tags: - - new-x86_64-windows \ No newline at end of file + - new-x86_64-windows diff --git a/.gitlab/ci.sh b/.gitlab/ci.sh old mode 100644 new mode 100755 index 3f981dbd10c..1e90c820d3a --- a/.gitlab/ci.sh +++ b/.gitlab/ci.sh @@ -2,110 +2,42 @@ set -Eeuo pipefail -TOP="$(pwd)" -source "$TOP/.gitlab/common.sh" +source "$CI_PROJECT_DIR/.gitlab/common.sh" -# We don't have sudo access in GitLab CI, so we can't just dump binaries in -# the usual PATH locations. -toolchain="$(pwd)/toolchain" -mkdir -p "$toolchain/bin" -export PATH="$toolchain/bin:$PATH" -export CABAL_DIR="$TOP/cabal" -mkdir -p "$CABAL_DIR" +export GHCUP_INSTALL_BASE_PREFIX="$CI_PROJECT_DIR/toolchain" +export CABAL_DIR="$CI_PROJECT_DIR/cabal" -# Platform-specific bits -MAKE="make" case "$(uname)" in MSYS_*|MINGW*) - CABAL_DIR="$(cygpath -w "$CABAL_DIR")" - ;; - FreeBSD) - MAKE="gmake" + export CABAL_DIR="$(cygpath -w "$CABAL_DIR")" + GHCUP_BINDIR="${GHCUP_INSTALL_BASE_PREFIX}/ghcup/bin" ;; + *) + GHCUP_BINDIR="${GHCUP_INSTALL_BASE_PREFIX}/.ghcup/bin" + ;; esac -fetch_cabal_install_unix() { - local cabal_url="$1" - run curl -L -o cabal.tar.xz "$cabal_url" - run tar --directory "$toolchain/bin/" -xf cabal.tar.xz cabal - chmod +x "$toolchain/bin/cabal" - CABAL="$toolchain/bin/cabal" -} - -setup_cabal_install() { - if [ -z "${CABAL:-}" ]; then - info "Fetching GHC..." - case "$(uname)" in - FreeBSD) - fetch_cabal_install_unix "https://hasufell.de/d/d3e215db133e4fcaa61e/files/?p=/cabal-install-$CABAL_INSTALL_VERSION-x86_64-portbld-freebsd.tar.xz&dl=1" ;; - Darwin) - fetch_cabal_install_unix "https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL_VERSION/cabal-install-$CABAL_INSTALL_VERSION-x86_64-apple-darwin17.7.0.tar.xz" ;; - MSYS_*|MINGW*) - cabal_url="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL_VERSION/cabal-install-$CABAL_INSTALL_VERSION-x86_64-unknown-mingw32.zip" - run curl -L -o cabal.zip "$cabal_url" - run unzip cabal.zip - cp cabal.exe "$toolchain/bin/cabal.exe" - chmod +x "$toolchain/bin/cabal.exe" - CABAL="$toolchain/bin/cabal.exe" - ;; - *) fail "no cabal-install bindist for $(uname)" - esac - - fi - export CABAL - run "$CABAL" --version -} - - -fetch_ghc_unix() { - local ghc_url="$1" - run curl -sSfL -o ghc.tar.xz "$ghc_url" - run tar -xf ghc.tar.xz - - pushd "ghc-${GHC_VERSION}" - run ./configure --prefix="$toolchain" - run "$MAKE" install - popd - GHC="$toolchain/bin/ghc" -} - -setup_ghc() { - if [ -z "${GHC:-}" ]; then - info "Fetching GHC..." - case "$(uname)" in - FreeBSD) - fetch_ghc_unix "https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-unknown-freebsd.tar.xz" ;; - Darwin) - fetch_ghc_unix "https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-apple-darwin.tar.xz" ;; - MSYS_*|MINGW*) - ghc_url="https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-unknown-mingw32.tar.xz" - run curl -sSfL -o ghc.tar.xz "$ghc_url" - run tar -xf ghc.tar.xz - cp -R ghc-$GHC_VERSION/* "$toolchain" - GHC="$toolchain/bin/ghc.exe" - run "$GHC" --version - GHC="$(cygpath -w $GHC)" - return - ;; - *) fail "no GHC bindist for $(uname)" - esac - fi +mkdir -p "$CABAL_DIR" +mkdir -p "$GHCUP_BINDIR" +export PATH="$GHCUP_BINDIR:$PATH" - export GHC - run "$GHC" --version -} +export BOOTSTRAP_HASKELL_NONINTERACTIVE=1 +export BOOTSTRAP_HASKELL_GHC_VERSION=$GHC_VERSION +export BOOTSTRAP_HASKELL_CABAL_VERSION=$CABAL_INSTALL_VERSION +export BOOTSTRAP_HASKELL_VERBOSE=1 +export BOOTSTRAP_HASKELL_ADJUST_CABAL_CONFIG=yes -setup_cabal_install -setup_ghc +curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh -run "$CABAL" update -run "$CABAL" v2-install cabal-install \ - -w "$GHC" \ - --installdir="$TOP/out" \ +run cabal v2-install cabal-install \ + -w "ghc-$GHC_VERSION" \ + --installdir="$CI_PROJECT_DIR/out" \ --install-method=copy \ --overwrite-policy=always \ --enable-executable-static \ --disable-profiling \ --enable-split-sections \ --enable-executable-stripping + +cp dist-newstyle/cache/plan.json "$CI_PROJECT_DIR/out/plan.json" diff --git a/.gitlab/shell.nix b/.gitlab/shell.nix new file mode 100644 index 00000000000..33c7c67beee --- /dev/null +++ b/.gitlab/shell.nix @@ -0,0 +1,90 @@ +{ system ? "aarch64-darwin" +#, nixpkgs ? fetchTarball https://github.com/angerman/nixpkgs/archive/257cb120334.tar.gz #apple-silicon.tar.gz +, pkgs ? import { inherit system; } +, compiler ? if system == "aarch64-darwin" then "ghc8103Binary" else "ghc8103" +}: pkgs.mkShell { + # this prevents nix from trying to write the env-vars file. + # we can't really, as NIX_BUILD_TOP/env-vars is not set. + noDumpEnvVars=1; + + # stop polluting LDFLAGS with -liconv + dontAddExtraLibs = true; + + # we need to inject ncurses into --with-curses-libraries. + # the real fix is to teach terminfo to use libcurses on macOS. + # CONFIGURE_ARGS = "--with-intree-gmp --with-curses-libraries=${pkgs.ncurses.out}/lib"; + CONFIGURE_ARGS = "--with-intree-gmp --with-curses-libraries=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib --with-iconv-includes=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include --with-iconv-libraries=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib SH=/bin/bash"; + + # magic speedup pony :facepalm: + # + # nix has the ugly habbit of duplicating ld flags more than necessary. This + # somewhat consolidates this. + shellHook = '' + export NIX_LDFLAGS=$(for a in $NIX_LDFLAGS; do echo $a; done |sort|uniq|xargs) + export NIX_LDFLAGS_FOR_TARGET=$(for a in $NIX_LDFLAGS_FOR_TARGET; do echo $a; done |sort|uniq|xargs) + export NIX_LDFLAGS_FOR_TARGET=$(comm -3 <(for l in $NIX_LDFLAGS_FOR_TARGET; do echo $l; done) <(for l in $NIX_LDFLAGS; do echo $l; done)) + + + # Impurity hack for GHC releases. + ################################# + # We don't want binary releases to depend on nix, thus we'll need to make sure we don't leak in references. + # GHC externally depends only on iconv and curses. However we can't force a specific curses library for + # the terminfo package, as such we'll need to make sure we only look in the system path for the curses library + # and not pick up the tinfo from the nix provided ncurses package. + # + # We also need to force us to use the systems COREFOUNDATION, not the one that nix builds. Again this is impure, + # but it will allow us to have proper binary distributions. + # + # do not use nixpkgs provided core foundation + export NIX_COREFOUNDATION_RPATH=/System/Library/Frameworks + # drop curses from the LDFLAGS, we really want the system ones, not the nix ones. + export NIX_LDFLAGS=$(for lib in $NIX_LDFLAGS; do case "$lib" in *curses*);; *) echo -n "$lib ";; esac; done;) + export NIX_CFLAGS_COMPILE+=" -Wno-nullability-completeness -Wno-availability -Wno-expansion-to-defined -Wno-builtin-requires-header -Wno-unused-command-line-argument" + + # unconditionally add the MacOSX.sdk and TargetConditional.h + export NIX_CFLAGS_COMPILE+=" -isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include" + export NIX_LDFLAGS="-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib $NIX_LDFLAGS" + + ''; + + nativeBuildInputs = (with pkgs; [ + # This needs to come *before* ghc, + # otherwise we migth end up with the clang from + # the bootstrap GHC in PATH with higher priority. + clang_11 + llvm_11 + + haskell.compiler.${compiler} + haskell.packages.${compiler}.cabal-install + haskell.packages.${compiler}.alex + haskell.packages.${compiler}.happy # _1_19_12 is needed for older GHCs. + + automake + autoconf + m4 + + gmp + zlib.out + zlib.dev + glibcLocales + # locale doesn't build yet :-/ + # locale + + git + + python3 + # python3Full + # python3Packages.sphinx + perl + + which + wget + curl + file + + xz + xlibs.lndir + + cacert ]) + ++ (with pkgs.darwin.apple_sdk.frameworks; [ Foundation Security ]); +} diff --git a/cabal.project b/cabal.project index af1d8a38306..25baac8272e 100644 --- a/cabal.project +++ b/cabal.project @@ -7,8 +7,7 @@ packages: Cabal/Cabal-tree-diff/ packages: Cabal/Cabal-described packages: cabal-benchmarks/ --- Uncomment to allow picking up extra local unpacked deps: ---optional-packages: */ +optional-packages: ./vendored/*/*.cabal -- Remove after hackage-repo-tool release allow-newer: From f3cd29e39317ae8a77f29e106521d71728ea6ef7 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Tue, 5 Oct 2021 01:15:04 +0200 Subject: [PATCH 04/12] Add i386 build (#7700) No CI neeeded --- .gitlab-ci.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 356ff1c7aa1..c2c36c55f4c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -45,6 +45,17 @@ build-x86_64-linux-alpine: - x86_64-linux image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV" +build-i386-linux-alpine: + extends: .build + tags: + - x86_64-linux + image: "i386/alpine:3.12" + before_script: + # for GHC + - apk add --no-cache bash curl gcc g++ binutils binutils-gold bsd-compat-headers gmp-dev ncurses-dev libffi-dev make xz tar perl + # for cabal build + - apk add --no-cache zlib zlib-dev zlib-static + build-x86_64-freebsd: extends: .build tags: From e53d095358d2e716bfdbf0dba730e8606764ba06 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Fri, 8 Oct 2021 13:33:05 +0200 Subject: [PATCH 05/12] Bump to 3.4.1.0 --- .github/workflows/windows.yml | 2 +- Cabal/Cabal-QuickCheck/Cabal-QuickCheck.cabal | 4 ++-- Cabal/Cabal-described/Cabal-described.cabal | 4 ++-- Cabal/Cabal-tree-diff/Cabal-tree-diff.cabal | 4 ++-- Cabal/Cabal.cabal | 2 +- boot/ci-windows.template.yml | 2 +- cabal-install/cabal-install.cabal | 4 ++-- cabal-install/cabal-install.cabal.dev | 4 ++-- cabal-install/cabal-install.cabal.prod | 4 ++-- cabal-install/cabal-install.cabal.zinza | 4 ++-- cabal-testsuite/cabal-testsuite.cabal | 2 +- release-notes/Cabal-3.4.1.0.md | 3 +++ 12 files changed, 21 insertions(+), 18 deletions(-) create mode 100644 release-notes/Cabal-3.4.1.0.md diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 1b944d05de1..8cb6637db65 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -66,4 +66,4 @@ jobs: cabal v2-run cabal-install:unit-tests -- --pattern "! (/FileMonitor/ || /VCS/ || /Get/)" - name: cabal-tests # Using only one job, -j1, to fail less. - run: cabal v2-run cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-install-3.4.0.0\x\cabal\build\cabal\cabal.exe + run: cabal v2-run cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-install-3.4.1.0\x\cabal\build\cabal\cabal.exe diff --git a/Cabal/Cabal-QuickCheck/Cabal-QuickCheck.cabal b/Cabal/Cabal-QuickCheck/Cabal-QuickCheck.cabal index ea866907bf5..bdb1e382daa 100644 --- a/Cabal/Cabal-QuickCheck/Cabal-QuickCheck.cabal +++ b/Cabal/Cabal-QuickCheck/Cabal-QuickCheck.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: Cabal-QuickCheck -version: 3.4.0.0 +version: 3.4.1.0 synopsis: QuickCheck instances for types in Cabal category: Testing description: @@ -13,7 +13,7 @@ library build-depends: , base , bytestring - , Cabal ^>=3.4.0.0 + , Cabal ^>=3.4.1.0 , QuickCheck ^>=2.13.2 || ^>=2.14 if !impl(ghc >= 8.0) diff --git a/Cabal/Cabal-described/Cabal-described.cabal b/Cabal/Cabal-described/Cabal-described.cabal index 79a3bda76f4..5775023c234 100644 --- a/Cabal/Cabal-described/Cabal-described.cabal +++ b/Cabal/Cabal-described/Cabal-described.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: Cabal-described -version: 3.4.0.0 +version: 3.4.1.0 synopsis: Described functionality for types in Cabal category: Testing, Parsec description: Provides rere bindings @@ -11,7 +11,7 @@ library ghc-options: -Wall build-depends: , base - , Cabal ^>=3.4.0.0 + , Cabal ^>=3.4.1.0 , containers , pretty , QuickCheck diff --git a/Cabal/Cabal-tree-diff/Cabal-tree-diff.cabal b/Cabal/Cabal-tree-diff/Cabal-tree-diff.cabal index 850625dec9f..ee17dd45c84 100644 --- a/Cabal/Cabal-tree-diff/Cabal-tree-diff.cabal +++ b/Cabal/Cabal-tree-diff/Cabal-tree-diff.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: Cabal-tree-diff -version: 3.4.0.0 +version: 3.4.1.0 synopsis: QuickCheck instances for types in Cabal category: Testing description: Provides tree-diff ToExpr instances for some types in Cabal @@ -11,7 +11,7 @@ library ghc-options: -Wall build-depends: , base - , Cabal ^>=3.4.0.0 + , Cabal ^>=3.4.1.0 , tree-diff ^>=0.1 exposed-modules: Data.TreeDiff.Instances.Cabal diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal index d10be4e254c..3888606102f 100644 --- a/Cabal/Cabal.cabal +++ b/Cabal/Cabal.cabal @@ -1,6 +1,6 @@ cabal-version: >=1.10 name: Cabal -version: 3.4.0.0 +version: 3.4.1.0 copyright: 2003-2020, Cabal Development Team (see AUTHORS file) license: BSD3 license-file: LICENSE diff --git a/boot/ci-windows.template.yml b/boot/ci-windows.template.yml index 492254d1ad9..511fd707692 100644 --- a/boot/ci-windows.template.yml +++ b/boot/ci-windows.template.yml @@ -73,5 +73,5 @@ jobs: cabal v2-run cabal-install:unit-tests -- --pattern "! (/FileMonitor/ || /VCS/ || /Get/)" - name: cabal-tests # Using only one job, -j1, to fail less. - run: cabal v2-run cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-{{ job.version }}\cabal-install-3.4.0.0\x\cabal\build\cabal\cabal.exe + run: cabal v2-run cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-{{ job.version }}\cabal-install-3.4.1.0\x\cabal\build\cabal\cabal.exe {% endfor %} diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal index dd3f970f5ae..fea9670acb4 100644 --- a/cabal-install/cabal-install.cabal +++ b/cabal-install/cabal-install.cabal @@ -4,7 +4,7 @@ Cabal-Version: >= 1.10 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.4.0.0 +Version: 3.4.1.0 Synopsis: The command-line interface for Cabal and Hackage. Description: The \'cabal\' command-line program simplifies the process of managing @@ -340,7 +340,7 @@ executable cabal base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.4.*, + Cabal == 3.4.1.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-install/cabal-install.cabal.dev b/cabal-install/cabal-install.cabal.dev index eb9279775a6..45b00f717d5 100644 --- a/cabal-install/cabal-install.cabal.dev +++ b/cabal-install/cabal-install.cabal.dev @@ -4,7 +4,7 @@ Cabal-Version: 2.0 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.4.0.0 +Version: 3.4.1.0 Synopsis: The command-line interface for Cabal and Hackage. Description: The \'cabal\' command-line program simplifies the process of managing @@ -334,7 +334,7 @@ library cabal-lib-client base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.4.*, + Cabal == 3.4.1.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-install/cabal-install.cabal.prod b/cabal-install/cabal-install.cabal.prod index dd3f970f5ae..fea9670acb4 100644 --- a/cabal-install/cabal-install.cabal.prod +++ b/cabal-install/cabal-install.cabal.prod @@ -4,7 +4,7 @@ Cabal-Version: >= 1.10 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.4.0.0 +Version: 3.4.1.0 Synopsis: The command-line interface for Cabal and Hackage. Description: The \'cabal\' command-line program simplifies the process of managing @@ -340,7 +340,7 @@ executable cabal base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.4.*, + Cabal == 3.4.1.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-install/cabal-install.cabal.zinza b/cabal-install/cabal-install.cabal.zinza index d0b5ad71cbb..1ca889f10e0 100644 --- a/cabal-install/cabal-install.cabal.zinza +++ b/cabal-install/cabal-install.cabal.zinza @@ -9,7 +9,7 @@ Cabal-Version: >= 1.10 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.4.0.0 +Version: 3.4.1.0 {# NOTE: when updating build-depends, don't forget to update version regexps in bootstrap.sh. #} {% defblock buildDepends %} build-depends: @@ -19,7 +19,7 @@ Version: 3.4.0.0 base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.4.*, + Cabal == 3.4.1.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-testsuite/cabal-testsuite.cabal b/cabal-testsuite/cabal-testsuite.cabal index 609df004542..09716d3b013 100644 --- a/cabal-testsuite/cabal-testsuite.cabal +++ b/cabal-testsuite/cabal-testsuite.cabal @@ -28,7 +28,7 @@ common shared build-depends: , base >= 4.6 && <4.16 -- this needs to match the in-tree lib:Cabal version - , Cabal == 3.4.0.0 + , Cabal == 3.4.1.0 ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns diff --git a/release-notes/Cabal-3.4.1.0.md b/release-notes/Cabal-3.4.1.0.md new file mode 100644 index 00000000000..936eec47c35 --- /dev/null +++ b/release-notes/Cabal-3.4.1.0.md @@ -0,0 +1,3 @@ +### Bugfixes + +- Backport windows fix for packages using autoconf >= 2.70 [!7668](https://github.com/haskell/cabal/pull/7668) From 02f3e466a75a48f7876a11d59a4de54062ea0c68 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Fri, 8 Oct 2021 10:37:52 +0200 Subject: [PATCH 06/12] Fix CI on M1 --- .gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c2c36c55f4c..29b3106c264 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -82,7 +82,9 @@ build-aarch64-darwin: --keep CABAL_INSTALL_VERSION \ --run "$1" 2>&1 } - runInNixShell "cabal update && mkdir vendored && cd vendored && cabal unpack network-3.1.2.1 && cd network-3.1.2.1 && autoreconf -fi" 2>&1 + # temporary fix + runInNixShell "cabal update && mkdir vendored && cd vendored && cabal unpack network-3.1.2.2 && cd network-3.1.2.2 && autoreconf -fi" 2>&1 + runInNixShell "./.gitlab/ci.sh" 2>&1 variables: MACOSX_DEPLOYMENT_TARGET: "10.7" From e81295d4de6df2232183b542252a9b6aec1f06e3 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Fri, 8 Oct 2021 10:38:00 +0200 Subject: [PATCH 07/12] Fix linux build --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 29b3106c264..52a6cceb9b4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -37,7 +37,7 @@ build-x86_64-linux: extends: .build tags: - x86_64-linux - image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV" + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" build-x86_64-linux-alpine: extends: .build From 7c7827396a4d9fa6127452a178e111a8d760c924 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Thu, 7 Oct 2021 23:28:40 +0200 Subject: [PATCH 08/12] Use cabal.project.release in gitlab CI --- .gitlab/ci.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab/ci.sh b/.gitlab/ci.sh index 1e90c820d3a..d512595c2aa 100755 --- a/.gitlab/ci.sh +++ b/.gitlab/ci.sh @@ -32,6 +32,7 @@ curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh run cabal v2-install cabal-install \ -w "ghc-$GHC_VERSION" \ + --project-file=cabal.project.release \ --installdir="$CI_PROJECT_DIR/out" \ --install-method=copy \ --overwrite-policy=always \ From 6b986330ae17571fd3ec5f574fbbefc078609218 Mon Sep 17 00:00:00 2001 From: Fendor Date: Tue, 27 Jul 2021 12:56:14 +0200 Subject: [PATCH 09/12] Force cabal to use a build plan where exe:cabal-plan is enabled (cherry picked from commit 26b94bbfe5b4a6ca3e110c4276bbb98ff296e235) --- .github/workflows/macos.yml | 4 ++-- boot/ci-macos.template.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index a563c0e86be..576e4674d07 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -55,7 +55,7 @@ jobs: - name: Install cabal-plan run: | cd $(mktemp -d) - cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' + cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' --constraint='cabal-plan +exe' - uses: actions/checkout@v2 - name: Validate print-config run: sh validate.sh -j 2 -w ghc-8.8.3 -v -s print-config @@ -110,7 +110,7 @@ jobs: - name: Install cabal-plan run: | cd $(mktemp -d) - cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' + cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' --constraint='cabal-plan +exe' - uses: actions/checkout@v2 - name: Validate print-config run: sh validate.sh -j 2 -w ghc-8.6.5 -v -s print-config diff --git a/boot/ci-macos.template.yml b/boot/ci-macos.template.yml index 8fa8ba504e3..8504fb2c91d 100644 --- a/boot/ci-macos.template.yml +++ b/boot/ci-macos.template.yml @@ -60,7 +60,7 @@ jobs: run: | cd $(mktemp -d) {# aeson +fast, so we don't wait for -O2 #} - cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' + cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' --constraint='cabal-plan +exe' - uses: actions/checkout@v2 {% for step in job.steps %} - name: Validate {{step}} From 41f5bd93aa9befafc86b5f648b346f3db378c172 Mon Sep 17 00:00:00 2001 From: Mikolaj Konarski Date: Fri, 17 Sep 2021 19:19:54 +0200 Subject: [PATCH 10/12] Update boostrap CI to the ghcup format GHA now uses --- .github/workflows/bootstrap.yml | 2 +- boot/ci-bootstrap.template.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index 97622dff891..6feb761e1a2 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.4) -d bootstrap/linux-8.10.4.json - name: Smoke test run: | diff --git a/boot/ci-bootstrap.template.yml b/boot/ci-bootstrap.template.yml index 97622dff891..6feb761e1a2 100644 --- a/boot/ci-bootstrap.template.yml +++ b/boot/ci-bootstrap.template.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.4) -d bootstrap/linux-8.10.4.json - name: Smoke test run: | From ce6fb9758f350472f51aa22144a87dd2376b0305 Mon Sep 17 00:00:00 2001 From: Mikolaj Konarski Date: Fri, 17 Sep 2021 21:22:36 +0200 Subject: [PATCH 11/12] Add ghcup install call to boostrap script to be future safe --- .github/workflows/bootstrap.yml | 12 +++--------- boot/ci-bootstrap.template.yml | 12 +++--------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index 6feb761e1a2..198c177bca7 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -26,6 +26,7 @@ jobs: - uses: actions/checkout@v2 - name: bootstrap.py run: | + ghcup install ghc 8.10.4 python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.4) -d bootstrap/linux-8.10.4.json - name: Smoke test @@ -41,20 +42,13 @@ jobs: name: Bootstrap on macOS runs-on: macos-latest steps: - - name: Install GHC - run: | - cd $(mktemp -d) - curl -sLO "https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-apple-darwin.tar.xz" - tar -xJf ghc-*.tar.xz - cd ghc-* - ./configure --prefix=/opt/ghc/8.10.4 - sudo make install - uses: actions/checkout@v2 # We use linux dependencies - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + ghcup install ghc 8.10.4 + python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.4) -d bootstrap/linux-8.10.4.json - name: Smoke test run: | diff --git a/boot/ci-bootstrap.template.yml b/boot/ci-bootstrap.template.yml index 6feb761e1a2..198c177bca7 100644 --- a/boot/ci-bootstrap.template.yml +++ b/boot/ci-bootstrap.template.yml @@ -26,6 +26,7 @@ jobs: - uses: actions/checkout@v2 - name: bootstrap.py run: | + ghcup install ghc 8.10.4 python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.4) -d bootstrap/linux-8.10.4.json - name: Smoke test @@ -41,20 +42,13 @@ jobs: name: Bootstrap on macOS runs-on: macos-latest steps: - - name: Install GHC - run: | - cd $(mktemp -d) - curl -sLO "https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-apple-darwin.tar.xz" - tar -xJf ghc-*.tar.xz - cd ghc-* - ./configure --prefix=/opt/ghc/8.10.4 - sudo make install - uses: actions/checkout@v2 # We use linux dependencies - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + ghcup install ghc 8.10.4 + python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.4) -d bootstrap/linux-8.10.4.json - name: Smoke test run: | From 12275e7b720e1748112adb90b744e7f770867abe Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Fri, 8 Oct 2021 14:07:54 +0200 Subject: [PATCH 12/12] Fix quick jobs --- .github/workflows/quick-jobs.yml | 6 ++---- boot/ci-quick-jobs.template.yml | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/quick-jobs.yml b/.github/workflows/quick-jobs.yml index 4a8e5035c3f..7754366c070 100644 --- a/.github/workflows/quick-jobs.yml +++ b/.github/workflows/quick-jobs.yml @@ -24,12 +24,10 @@ jobs: runs-on: ubuntu-18.04 # This job is not run in a container, any recent GHC should be fine steps: - - name: Set PATH - # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path + - name: Install GHC run: | echo "$HOME/.cabal/bin" >> $GITHUB_PATH - echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH - echo "/opt/ghc/8.10.4/bin" >> $GITHUB_PATH + ghcup install ghc --set 8.10.4 - uses: actions/cache@v1 with: path: ~/.cabal/store diff --git a/boot/ci-quick-jobs.template.yml b/boot/ci-quick-jobs.template.yml index 4a8e5035c3f..7754366c070 100644 --- a/boot/ci-quick-jobs.template.yml +++ b/boot/ci-quick-jobs.template.yml @@ -24,12 +24,10 @@ jobs: runs-on: ubuntu-18.04 # This job is not run in a container, any recent GHC should be fine steps: - - name: Set PATH - # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path + - name: Install GHC run: | echo "$HOME/.cabal/bin" >> $GITHUB_PATH - echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH - echo "/opt/ghc/8.10.4/bin" >> $GITHUB_PATH + ghcup install ghc --set 8.10.4 - uses: actions/cache@v1 with: path: ~/.cabal/store