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

Merge branch 'main' into freeze-version

parents 845274fe 3d91a151
Branches
No related tags found
No related merge requests found
.env:
variables:
GHC_VERSION_BUILD: "9.2.8"
CABAL_VERSION_BUILD: "3.6.2.0"
GHC_VERSION_BUILD: "9.6.2"
CABAL_VERSION_BUILD: "3.10.1.0"
STACK_VERSION: "2.11.1"
HLS_VERSION: "2.0.0.1"
HLS_VERSION: "2.1.0.0"
BUILD_GHC: "true"
BUILD_HLS: "true"
......@@ -52,6 +52,7 @@ stages:
- .pre
- build1
- build2
- update
- test
- deploy
- .post
......@@ -239,9 +240,11 @@ build-package-hls:latest-linux-amd64:
--build-arg GHC_VERSION=$GHC_VERSION_BUILD
--build-arg HLS_VERSION
-t $CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-amd64
-t $CI_APP_REPO/$GHC_VERSION_BUILD/hls:$HLS_VERSION-linux-amd64
-f packages/hls/$HLS_VERSION.Dockerfile .
- |
docker push $CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-amd64
docker push $CI_APP_REPO/$GHC_VERSION_BUILD/hls:$HLS_VERSION-linux-amd64
rules:
- if: $BUILD_HLS == "true" && $CI_COMMIT_BRANCH == "main" && $CI_BUILD_PLATFORMS =~ /(linux\/amd64)/
changes:
......@@ -259,9 +262,11 @@ build-package-hls:latest-linux-arm64v8:
--build-arg GHC_VERSION=$GHC_VERSION_BUILD
--build-arg HLS_VERSION
-t $CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-arm64v8
-t $CI_APP_REPO/$GHC_VERSION_BUILD/hls:$HLS_VERSION-linux-arm64v8
-f packages/hls/$HLS_VERSION.Dockerfile .
- |
docker push $CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-arm64v8
docker push $CI_APP_REPO/$GHC_VERSION_BUILD/hls:$HLS_VERSION-linux-arm64v8
rules:
- if: $BUILD_HLS == "true" && $CI_COMMIT_BRANCH == "main" && $CI_BUILD_PLATFORMS =~ /(linux\/arm64\/v8)/
changes:
......@@ -316,7 +321,7 @@ build-package-hls-manifest:latest-linux-multiarch:
docker manifest create $CI_APP_REPO/$CI_APP_TAG/hls:$CI_APP_TAG $CI_MANIFEST_LIST
if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then
docker manifest annotate --variant v8 $CI_APP_REPO/$CI_APP_TAG/hls:$CI_APP_TAG \
$CI_APP_REPO/$CI_APP_TAG/hls:$CI_APP_TAG-linux-arm64v8
$CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-arm64v8
fi
docker manifest push $CI_APP_REPO/$CI_APP_TAG/hls:$CI_APP_TAG
- |
......@@ -368,14 +373,144 @@ build-package-hls-manifest:version-linux-multiarch:
$CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-arm64v8
fi
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:
- if: $BUILD_HLS == "true" && $CI_COMMIT_BRANCH == "freeze-version"
changes:
- packages/hls/$HLS_VERSION.Dockerfile
update:latest-linux-amd64:
extends: .build
stage: update
tags:
- arch:amd64
- os:linux
script:
- >
docker build
--build-arg GHC_VERSION
--build-arg STACK_VERSION
--build-arg PREFIX
-t $CI_APP_REPO:$CI_APP_TAG-linux-amd64
-t $CI_APP_REPO:$VERSION_MAJ_MIN_PAT-linux-amd64
-f Stack.Dockerfile .
- |
docker push $CI_APP_REPO:$CI_APP_TAG-linux-amd64
docker push $CI_APP_REPO:$VERSION_MAJ_MIN_PAT-linux-amd64
rules:
- if: $UPDATE_STACK == "true" && $CI_COMMIT_BRANCH == "main" && $CI_BUILD_PLATFORMS =~ /(linux\/amd64)/
update:latest-linux-arm64v8:
extends: .build
stage: update
tags:
- arch:arm64/v8
- os:linux
script:
- >
docker build
--build-arg GHC_VERSION
--build-arg STACK_VERSION
--build-arg PREFIX
-t $CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
-t $CI_APP_REPO:$VERSION_MAJ_MIN_PAT-linux-arm64v8
-f Stack.Dockerfile .
- |
docker push $CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
docker push $CI_APP_REPO:$VERSION_MAJ_MIN_PAT-linux-arm64v8
rules:
- if: $UPDATE_STACK == "true" && $CI_COMMIT_BRANCH == "main" && $CI_BUILD_PLATFORMS =~ /(linux\/arm64\/v8)/
update:version-linux-amd64:
extends: .build
stage: update
tags:
- arch:amd64
- os:linux
script:
- >
docker build
--build-arg GHC_VERSION
--build-arg STACK_VERSION
--build-arg PREFIX
-t $CI_APP_REPO:$CI_APP_TAG-linux-amd64
-f Stack.Dockerfile .
- docker push $CI_APP_REPO:$CI_APP_TAG-linux-amd64
rules:
- if: $UPDATE_STACK == "true" && $CI_COMMIT_BRANCH == "freeze-version" && $CI_BUILD_PLATFORMS =~ /(linux\/amd64)/
update:version-linux-arm64v8:
extends: .build
stage: update
tags:
- arch:arm64/v8
- os:linux
script:
- >
docker build
--build-arg GHC_VERSION
--build-arg STACK_VERSION
--build-arg PREFIX
-t $CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
-f Stack.Dockerfile .
- docker push $CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
rules:
- if: $UPDATE_STACK == "true" && $CI_COMMIT_BRANCH == "freeze-version" && $CI_BUILD_PLATFORMS =~ /(linux\/arm64\/v8)/
update-manifest:latest-linux-multiarch:
extends: .build
stage: update
needs: ["update:latest-linux-amd64", "update:latest-linux-arm64v8"]
script:
- |
for i in $OS_ARCH; do
export CI_MANIFEST_LIST="$CI_MANIFEST_LIST $CI_APP_REPO:$CI_APP_TAG-$i"
done
- |
docker manifest create $CI_APP_REPO:$CI_APP_TAG $CI_MANIFEST_LIST
if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then
docker manifest annotate --variant v8 $CI_APP_REPO:$CI_APP_TAG \
$CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
fi
docker manifest push $CI_APP_REPO:$CI_APP_TAG
- |
docker manifest create $CI_APP_REPO:$VERSION_MAJ_MIN_PAT $CI_MANIFEST_LIST
if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then
docker manifest annotate --variant v8 $CI_APP_REPO:$VERSION_MAJ_MIN_PAT \
$CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
fi
docker manifest push $CI_APP_REPO:$VERSION_MAJ_MIN_PAT
- |
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
- |
docker manifest create $CI_APP_REPO:$VERSION_MAJ $CI_MANIFEST_LIST
if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then
docker manifest annotate --variant v8 $CI_APP_REPO:$VERSION_MAJ \
$CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
fi
docker manifest push $CI_APP_REPO:$VERSION_MAJ
rules:
- if: $UPDATE_STACK == "true" && $CI_COMMIT_BRANCH == "main"
update-manifest:version-linux-multiarch:
extends: .build
stage: update
needs: ["update:version-linux-amd64", "update:version-linux-arm64v8"]
script:
- |
for i in $OS_ARCH; do
export CI_MANIFEST_LIST="$CI_MANIFEST_LIST $CI_APP_REPO:$CI_APP_TAG-$i"
done
- |
docker manifest create $CI_APP_REPO:$CI_APP_TAG $CI_MANIFEST_LIST
if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then
docker manifest annotate --variant v8 $CI_APP_REPO:$CI_APP_TAG \
$CI_APP_REPO:$CI_APP_TAG-linux-arm64v8
fi
docker manifest push $CI_APP_REPO:$CI_APP_TAG
rules:
- if: $UPDATE_STACK == "true" && $CI_COMMIT_BRANCH == "freeze-version"
......@@ -3,8 +3,8 @@
# GHC musl
The multi-arch (`linux/amd64`, `linux/arm64/v8`) docker image used to build the
Linux amd64 and arm64
[binary releases of pandoc](https://github.com/jgm/pandoc/releases).
*statically linked* Linux amd64 and arm64 binary
[releases of Pandoc](https://github.com/jgm/pandoc/releases).
Credits to
......
ARG GHC_VERSION
ARG STACK_VERSION
ARG STACK_VERSION_UPDATE=${STACK_VERSION}
FROM glcr.b-data.ch/ghc/ghc-musl:${GHC_VERSION}
ARG STACK_VERSION_UPDATE
ARG PREFIX=/usr/local
ENV STACK_VERSION=${STACK_VERSION_UPDATE}
## Install Stack
RUN cd /tmp \
&& curl -sSLO https://github.com/commercialhaskell/stack/releases/download/v"$STACK_VERSION"/stack-"$STACK_VERSION"-linux-"$(uname -m)".tar.gz \
&& curl -sSLO https://github.com/commercialhaskell/stack/releases/download/v"$STACK_VERSION"/stack-"$STACK_VERSION"-linux-"$(uname -m)".tar.gz.sha256 \
&& sha256sum -cs stack-"$STACK_VERSION"-linux-"$(uname -m)".tar.gz.sha256 \
&& tar -xzf stack-"$STACK_VERSION"-linux-"$(uname -m)".tar.gz \
&& mv stack-"$STACK_VERSION"-linux-"$(uname -m)"/stack "$PREFIX/bin/stack" \
## Clean up
&& rm -rf /tmp/*
......@@ -2,31 +2,32 @@
Topmost entry = Tag `latest`
| GHC | Cabal | Stack | LLVM | Linux distro |
|:-----------|:---------|:-------|:---- |:-------------|
| 9.6.2 | 3.10.1.0 | 2.11.1 | 14 | Alpine 3.18 |
| 9.6.1 | 3.10.1.0 | n/a | 14 | Alpine 3.18 |
| 9.4.6 | 3.8.1.0 | 2.11.1 | 14 | Alpine 3.18 |
| 9.4.5 | 3.8.1.0 | n/a | 14 | Alpine 3.17 |
| 9.4.4 | 3.8.1.0 | n/a | 14 | Alpine 3.17 |
| 9.4.3 | 3.8.1.0 | n/a | 12 | Alpine 3.16 |
| 9.4.2 | 3.8.1.0 | n/a | 12 | Alpine 3.16 |
| 9.4.1 | 3.8.1.0 | n/a | 12 | Alpine 3.16 |
| 9.2.8 | 3.6.2.0 | 2.11.1 | 12 | Alpine 3.16 |
| 9.2.7[^1] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.6[^1] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.5[^1] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.4[^1] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.3[^1] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.2[^1] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.1[^1] | 3.6.0.0 | n/a | 12 | Alpine 3.15 |
| 9.0.2[^1] | 3.4.0.0 | n/a | 10 | Alpine 3.15 |
| 9.0.1[^1] | 3.4.0.0 | n/a | 10 | Alpine 3.15 |
| 8.10.7[^1] | 3.2.0.0 | n/a | 10 | Alpine 3.13 |
| 8.10.6[^1] | 3.2.0.0 | n/a | 10 | Alpine 3.13 |
| 8.10.5[^1] | 3.2.0.0 | n/a | 10 | Alpine 3.13 |
| 8.10.4[^1] | 3.2.0.0 | n/a | 10 | Alpine 3.13 |
| 8.10.1[^1] | 3.2.0.0 | n/a | 10 | Alpine 3.13 |
| 8.8.4[^1] | 3.2.0.0 | n/a | 10 | Alpine 3.12 |
| GHC | Cabal | Stack | LLVM | Linux distro |
|:-----------|:---------|:-----------|:---- |:-------------|
| 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.4.6 | 3.8.1.0 | 2.11.1[^1] | 14 | Alpine 3.18 |
| 9.4.5 | 3.8.1.0 | n/a | 14 | Alpine 3.17 |
| 9.4.4 | 3.8.1.0 | n/a | 14 | Alpine 3.17 |
| 9.4.3 | 3.8.1.0 | n/a | 12 | Alpine 3.16 |
| 9.4.2 | 3.8.1.0 | n/a | 12 | Alpine 3.16 |
| 9.4.1 | 3.8.1.0 | n/a | 12 | Alpine 3.16 |
| 9.2.8 | 3.6.2.0 | 2.11.1[^1] | 12 | Alpine 3.16 |
| 9.2.7[^2] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.6[^2] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.5[^2] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.4[^2] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.3[^2] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.2[^2] | 3.6.2.0 | n/a | 12 | Alpine 3.16 |
| 9.2.1[^2] | 3.6.0.0 | n/a | 12 | Alpine 3.15 |
| 9.0.2[^2] | 3.4.0.0 | n/a | 10 | Alpine 3.15 |
| 9.0.1[^2] | 3.4.0.0 | n/a | 10 | Alpine 3.15 |
| 8.10.7[^2] | 3.2.0.0 | n/a | 10 | Alpine 3.13 |
| 8.10.6[^2] | 3.2.0.0 | n/a | 10 | Alpine 3.13 |
| 8.10.5[^2] | 3.2.0.0 | n/a | 10 | Alpine 3.13 |
| 8.10.4[^2] | 3.2.0.0 | n/a | 10 | Alpine 3.13 |
| 8.10.1[^2] | 3.2.0.0 | n/a | 10 | Alpine 3.13 |
| 8.8.4[^2] | 3.2.0.0 | n/a | 10 | Alpine 3.12 |
[^1]: w/o Haddock; due to `HADDOCK_DOCS=NO`
[^1]: unsupported build; *statically linked* binary
[^2]: w/o Haddock; due to `HADDOCK_DOCS=NO`
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment