diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 66ec227351b91c079d9dad10e31c928919596103..c98d01745086baa96cf69f30dd1392718afeab39 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ .env: variables: - GHC_VERSION: "9.6.4" - CABAL_VERSION: "3.10.1.0" + GHC_VERSION: "9.8.1" + CABAL_VERSION: "3.10.2.1" STACK_VERSION: "2.13.1" HLS_VERSION: "2.5.0.0" BUILD_GHC: "true" diff --git a/latest.Dockerfile b/latest.Dockerfile index bcc2318dd78b41abe6db9d56a2fa0a4f7a6e08ac..f14eccd2af485223521a29b1c754c8a0df93bece 100644 --- a/latest.Dockerfile +++ b/latest.Dockerfile @@ -5,13 +5,7 @@ ARG STACK_VERSION ARG GHC_VERSION_BUILD=${GHC_VERSION} ARG CABAL_VERSION_BUILD=${CABAL_VERSION} -FROM glcr.b-data.ch/ghc/ghc-musl:9.6.3 as bootstrap - -ARG GHC_VERSION_BUILD -ARG CABAL_VERSION_BUILD - -ENV GHC_VERSION=${GHC_VERSION_BUILD} \ - CABAL_VERSION=${CABAL_VERSION_BUILD} +FROM glcr.b-data.ch/ghc/ghc-musl:9.6.4 as bootstrap RUN apk upgrade --no-cache \ && apk add --no-cache \ @@ -32,6 +26,12 @@ RUN apk upgrade --no-cache \ xz \ zlib-dev +FROM bootstrap as bootstrap-ghc + +ARG GHC_VERSION_BUILD + +ENV GHC_VERSION=${GHC_VERSION_BUILD} + RUN cd /tmp \ && curl -sSLO https://downloads.haskell.org/~ghc/"$GHC_VERSION"/ghc-"$GHC_VERSION"-src.tar.xz \ && curl -sSLO https://downloads.haskell.org/~ghc/"$GHC_VERSION"/ghc-"$GHC_VERSION"-src.tar.xz.sig \ @@ -58,12 +58,16 @@ RUN cd /tmp \ FROM bootstrap as bootstrap-cabal +ARG CABAL_VERSION_BUILD + +ENV CABAL_VERSION=${CABAL_VERSION_BUILD} + ## Build Cabal (the tool) with the GHC bootstrap version RUN cabal update \ ## See https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history - && cabal install --allow-newer --constraint 'Cabal-syntax<3.11' "cabal-install-$CABAL_VERSION" + && cabal install "cabal-install-$CABAL_VERSION" -FROM alpine:3.18 as ghc-stage1 +FROM alpine:3.19 as ghc-stage1 LABEL org.opencontainers.image.licenses="MIT" \ org.opencontainers.image.source="https://gitlab.b-data.ch/ghc/ghc-musl" \ @@ -112,16 +116,9 @@ RUN apk add --no-cache \ zlib-dev \ zlib-static -COPY --from=bootstrap /tmp/ghc-"$GHC_VERSION"/_build/bindist/ghc-"$GHC_VERSION"-*-alpine-linux.tar.xz /tmp/ +COPY --from=bootstrap-ghc /tmp/ghc-"$GHC_VERSION"/_build/bindist/ghc-"$GHC_VERSION"-*-alpine-linux.tar.xz /tmp/ RUN cd /tmp \ - ## Fix https://github.com/haskell/cabal/issues/8923 - && PKG_CONFIG_VERSION="$(pkg-config --version)" \ - && if [ "${PKG_CONFIG_VERSION%.*}" = "1.9" ]; then \ - ## Downgrade pkgconf from 1.9.x to 1.8.1 - curl -sSLO http://dl-cdn.alpinelinux.org/alpine/v3.16/main/"$(uname -m)"/pkgconf-1.8.1-r0.apk; \ - apk add --no-cache pkgconf-1.8.1-r0.apk; \ - fi \ ## Install GHC && tar -xJf ghc-"$GHC_VERSION"-*-alpine-linux.tar.xz \ && cd ghc-"$GHC_VERSION"-*-alpine-linux \ @@ -144,7 +141,7 @@ COPY --from=bootstrap-cabal /root/.local/bin/cabal /usr/local/bin/cabal ## Rebuild Cabal (the tool) with the GHC target version RUN cabal update \ - && cabal install --allow-newer --constraint 'Cabal-syntax<3.11' "cabal-install-$CABAL_VERSION" + && cabal install "cabal-install-$CABAL_VERSION" FROM ghc-stage1 as test