Skip to content
Snippets Groups Projects
Verified Commit b4a42a1d authored by Olivier Benz's avatar Olivier Benz
Browse files

Update GHC to v9.8.1

- Dev Container: Add 'GHC 9.8 (latest)'
parent 1c12d9a7
No related branches found
No related tags found
No related merge requests found
Pipeline #24447 passed
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
| GHC | Cabal[^1] | Stack[^1] | HLS | | GHC | Cabal[^1] | Stack[^1] | HLS |
|:----------------------------|:----------|:------------|:--------------------------------------------------- | |:----------------------------|:----------|:------------|:--------------------------------------------------- |
| latest<br>9.6.3<br>9.6<br>9 | 3.10.1.0 | ≥ 2.13.1 | latest<br>2.4.0.0<br>2.3.0.0<br>2.2.0.0 | | latest<br>9.8.1<br>9.8<br>9 | 3.10.1.0 | ≥ 2.13.1 | latest<br>2.4.0.0 |
| 9.6.3<br>9.6 | 3.10.1.0 | ≥ 2.13.1 | 2.4.0.0<br>2.3.0.0<br>2.2.0.0 |
| 9.4.7<br>9.4 | 3.8.1.0 | ≥ 2.13.1 | 2.4.0.0<br>2.3.0.0<br>2.2.0.0<br>2.1.0.0<br>2.0.0.1 | | 9.4.7<br>9.4 | 3.8.1.0 | ≥ 2.13.1 | 2.4.0.0<br>2.3.0.0<br>2.2.0.0<br>2.1.0.0<br>2.0.0.1 |
| 9.2.8<br>9.2 | 3.6.2.0 | ≥ 2.13.1 | 2.4.0.0<br>2.3.0.0<br>2.2.0.0<br>2.1.0.0<br>2.0.0.1 | | 9.2.8<br>9.2 | 3.6.2.0 | ≥ 2.13.1 | 2.4.0.0<br>2.3.0.0<br>2.2.0.0<br>2.1.0.0<br>2.0.0.1 |
......
{ {
"name": "GHC 9.6 (latest)", "name": "GHC 9.6",
"build": { "build": {
"dockerfile": "../GHC.Dockerfile", "dockerfile": "../GHC.Dockerfile",
"context": "..", "context": "..",
......
{
"name": "GHC 9.8 (latest)",
"build": {
"dockerfile": "../GHC.Dockerfile",
"context": "..",
"args": {
"GHC_VERSION": "9.8",
"HLS_VERSION": "2.4.0.0",
"USE_ZSH_FOR_ROOT": "unset-to-use-ash",
"SET_LANG": "C.UTF-8",
"SET_TZ": ""
}
},
"onCreateCommand": "onCreateCommand.sh",
"postCreateCommand": "cabal update",
"postAttachCommand": "${HOME}/.local/bin/checkForUpdates.sh",
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"configureZshAsDefaultShell": true,
"upgradePackages": false,
"username": "vscode",
"userUid": "automatic",
"userGid": "automatic"
}
},
"customizations": {
"vscode": {
"extensions": [
"alefragnani.project-manager",
"christian-kohler.path-intellisense",
"eamodio.gitlens@11.7.0",
"editorconfig.editorconfig",
"exiasr.hadolint",
"GitHub.vscode-pull-request-github",
"GitLab.gitlab-workflow",
"haskell.haskell",
"mhutchie.git-graph",
"ms-vscode.makefile-tools",
"mutantdino.resourcemonitor",
"piotrpalarz.vscode-gitignore-generator",
"timonwong.shellcheck"
],
"settings": {
"gitlab.aiAssistedCodeSuggestions.enabled": false,
"gitlens.showWelcomeOnInstall": false,
"gitlens.showWhatsNewAfterUpgrades": false,
"haskell.manageHLS": "PATH",
"resmon.show.battery": false,
"resmon.show.cpufreq": false
}
}
},
// Set 'remoteUser' to 'root' to connect as root instead.
"remoteUser": "vscode",
"workspaceMount": "source=ghc-musl-ghc-9.8-home-vscode,target=/home/vscode,type=volume",
// "workspaceMount": "source=${localWorkspaceFolder}/.devcontainer/bind-mounts/ghc-musl-ghc-9.8-home-vscode,target=/home/vscode,type=bind",
"workspaceFolder": "/home/vscode",
// "remoteUser": "root",
// "workspaceMount": "source=ghc-musl-ghc-9.8-root,target=/root,type=volume",
// // "workspaceMount": "source=${localWorkspaceFolder}/.devcontainer/bind-mounts/ghc-musl-ghc-9.8-root,target=/root,type=bind",
// "workspaceFolder": "/root",
// Pip: Install packages to the user site
"remoteEnv": {
"PIP_USER": "1"
}
}
.env: .env:
variables: variables:
GHC_VERSION: "9.6.3" GHC_VERSION: "9.8.1"
CABAL_VERSION: "3.10.1.0" CABAL_VERSION: "3.10.1.0"
STACK_VERSION: "2.13.1" STACK_VERSION: "2.13.1"
HLS_VERSION: "2.4.0.0" HLS_VERSION: "2.4.0.0"
...@@ -223,13 +223,6 @@ build-manifest:version-linux-multiarch: ...@@ -223,13 +223,6 @@ build-manifest:version-linux-multiarch:
$CI_APP_REPO:$CI_APP_TAG-linux-arm64v8 $CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
fi fi
docker manifest push $CI_APP_REPO:$CI_APP_TAG docker manifest push $CI_APP_REPO:$CI_APP_TAG
- |
docker manifest create $CI_APP_REPO:$VERSION_MAJ_MIN $CI_MANIFEST_LIST
if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then
docker manifest annotate --variant v8 $CI_APP_REPO:$VERSION_MAJ_MIN \
$CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
fi
docker manifest push $CI_APP_REPO:$VERSION_MAJ_MIN
rules: rules:
- if: $BUILD_GHC == "true" && $CI_COMMIT_BRANCH == "freeze-version" - if: $BUILD_GHC == "true" && $CI_COMMIT_BRANCH == "freeze-version"
changes: changes:
...@@ -380,13 +373,6 @@ build-package-hls-manifest:version-linux-multiarch: ...@@ -380,13 +373,6 @@ build-package-hls-manifest:version-linux-multiarch:
$CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-arm64v8 $CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-arm64v8
fi fi
docker manifest push $CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION docker manifest push $CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION
- |
docker manifest create $CI_APP_REPO/$VERSION_MAJ_MIN/hls:$HLS_VERSION $CI_MANIFEST_LIST
if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then
docker manifest annotate --variant v8 $CI_APP_REPO/$VERSION_MAJ_MIN/hls:$HLS_VERSION \
$CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-arm64v8
fi
docker manifest push $CI_APP_REPO/$VERSION_MAJ_MIN/hls:$HLS_VERSION
rules: rules:
- if: $BUILD_HLS == "true" && $CI_COMMIT_BRANCH == "freeze-version" - if: $BUILD_HLS == "true" && $CI_COMMIT_BRANCH == "freeze-version"
changes: changes:
...@@ -526,12 +512,5 @@ update-manifest:version-linux-multiarch: ...@@ -526,12 +512,5 @@ update-manifest:version-linux-multiarch:
$CI_APP_REPO:$CI_APP_TAG-linux-arm64v8 $CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
fi fi
docker manifest push $CI_APP_REPO:$CI_APP_TAG docker manifest push $CI_APP_REPO:$CI_APP_TAG
- |
docker manifest create $CI_APP_REPO:$VERSION_MAJ_MIN $CI_MANIFEST_LIST
if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then
docker manifest annotate --variant v8 $CI_APP_REPO:$VERSION_MAJ_MIN \
$CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
fi
docker manifest push $CI_APP_REPO:$VERSION_MAJ_MIN
rules: rules:
- if: $UPDATE_STACK == "true" && $CI_COMMIT_BRANCH == "freeze-version" - if: $UPDATE_STACK == "true" && $CI_COMMIT_BRANCH == "freeze-version"
...@@ -46,7 +46,7 @@ To install docker, follow the instructions for your platform: ...@@ -46,7 +46,7 @@ To install docker, follow the instructions for your platform:
```bash ```bash
docker build \ docker build \
--build-arg GHC_VERSION=9.6.3 \ --build-arg GHC_VERSION=9.8.1 \
--build-arg CABAL_VERSION=3.10.1.0 \ --build-arg CABAL_VERSION=3.10.1.0 \
--build-arg STACK_VERSION=2.13.1 \ --build-arg STACK_VERSION=2.13.1 \
-t ghc-musl \ -t ghc-musl \
......
...@@ -4,6 +4,7 @@ Topmost entry = Tag `latest` ...@@ -4,6 +4,7 @@ Topmost entry = Tag `latest`
| GHC | Cabal | Stack | LLVM | Linux distro | | GHC | Cabal | Stack | LLVM | Linux distro |
|:-----------|:---------|:-----------|:---- |:-------------| |:-----------|:---------|:-----------|:---- |:-------------|
| 9.8.1 | 3.10.1.0 | 2.13.1 | 14 | Alpine 3.18 |
| 9.6.3 | 3.10.1.0 | 2.13.1 | 14 | Alpine 3.18 | | 9.6.3 | 3.10.1.0 | 2.13.1 | 14 | Alpine 3.18 |
| 9.6.2 | 3.10.1.0 | 2.11.1[^1] | 14 | Alpine 3.18 | | 9.6.2 | 3.10.1.0 | 2.11.1[^1] | 14 | Alpine 3.18 |
| 9.6.1 | 3.10.1.0 | n/a | 14 | Alpine 3.18 | | 9.6.1 | 3.10.1.0 | n/a | 14 | Alpine 3.18 |
......
...@@ -5,7 +5,7 @@ ARG STACK_VERSION ...@@ -5,7 +5,7 @@ ARG STACK_VERSION
ARG GHC_VERSION_BUILD=${GHC_VERSION} ARG GHC_VERSION_BUILD=${GHC_VERSION}
ARG CABAL_VERSION_BUILD=${CABAL_VERSION} ARG CABAL_VERSION_BUILD=${CABAL_VERSION}
FROM glcr.b-data.ch/ghc/ghc-musl:9.4.7 as bootstrap FROM glcr.b-data.ch/ghc/ghc-musl:9.6.3 as bootstrap
ARG GHC_VERSION_BUILD ARG GHC_VERSION_BUILD
ARG CABAL_VERSION_BUILD ARG CABAL_VERSION_BUILD
...@@ -36,9 +36,9 @@ RUN cd /tmp \ ...@@ -36,9 +36,9 @@ 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 \
&& curl -sSLO https://downloads.haskell.org/~ghc/"$GHC_VERSION"/ghc-"$GHC_VERSION"-src.tar.xz.sig \ && curl -sSLO https://downloads.haskell.org/~ghc/"$GHC_VERSION"/ghc-"$GHC_VERSION"-src.tar.xz.sig \
&& gpg --keyserver hkps://keyserver.ubuntu.com:443 \ && gpg --keyserver hkps://keyserver.ubuntu.com:443 \
--receive-keys 33C3A599DB85EA9B8BAA1866B202264020068BFB || \ --receive-keys FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD || \
gpg --keyserver hkp://keyserver.ubuntu.com:80 \ gpg --keyserver hkp://keyserver.ubuntu.com:80 \
--receive-keys 33C3A599DB85EA9B8BAA1866B202264020068BFB \ --receive-keys FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD \
&& gpg --verify "ghc-$GHC_VERSION-src.tar.xz.sig" "ghc-$GHC_VERSION-src.tar.xz" \ && gpg --verify "ghc-$GHC_VERSION-src.tar.xz.sig" "ghc-$GHC_VERSION-src.tar.xz" \
&& tar -xJf "ghc-$GHC_VERSION-src.tar.xz" \ && tar -xJf "ghc-$GHC_VERSION-src.tar.xz" \
&& cd "ghc-$GHC_VERSION" \ && cd "ghc-$GHC_VERSION" \
...@@ -133,7 +133,7 @@ RUN cd /tmp \ ...@@ -133,7 +133,7 @@ RUN cd /tmp \
&& rm -rf /tmp/* && rm -rf /tmp/*
## Install Cabal ## Install Cabal
COPY --from=bootstrap /root/.cabal/bin/cabal /usr/local/bin/cabal COPY --from=bootstrap /root/.local/bin/cabal /usr/local/bin/cabal
FROM builder as tester FROM builder as tester
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment