-
Olivier Benz authored
- Build system: Migrate from make to Hadrian - Install location: Migrate from /usr to /usr/local - CMD instruction: Add ghci
Olivier Benz authored- Build system: Migrate from make to Hadrian - Install location: Migrate from /usr to /usr/local - CMD instruction: Add ghci
.gitlab-ci.yml 5.46 KiB
.before-script-build: &before-script-build
- |
if [[ ! -z "$CI_BUILD_PLATFORMS" ]]; then
export OS_ARCH=`echo $CI_BUILD_PLATFORMS | tr ' ' '\n' | \
sed 's|\/||2' | sed 's|\/|-|' | tr '\n' ' '`
fi
- |
export CI_APP_REPO=${CI_APP_REPO:-$CI_REGISTRY_IMAGE}
if [[ $CI_COMMIT_BRANCH == "master" ]]; then
export CI_APP_TAG=${CI_APP_TAG:-latest}
elif [[ $CI_COMMIT_BRANCH == "freeze-version" ]]; then
export CI_APP_TAG=${CI_APP_TAG:-$GHC_VERSION_BUILD}
else
export CI_APP_TAG=${CI_APP_TAG:-$CI_COMMIT_SHA}
fi
- >
echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER
--password-stdin $CI_REGISTRY
- >
export VERSION_MAJ_MIN_PAT=$GHC_VERSION_BUILD
export VERSION_MAJ_MIN=`echo $VERSION_MAJ_MIN_PAT |
sed -n "s|\([[:digit:]]\+\.[[:digit:]]\+\).*|\1|p"`
export VERSION_MAJ=`echo $VERSION_MAJ_MIN_PAT |
sed -n "s|\([[:digit:]]\+\).*|\1|p"`
.build:
image: registry.gitlab.b-data.ch/docker/docker-buildx:latest
stage: build
services:
- docker:dind
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: "/certs"
GHC_VERSION_BUILD: "9.4.1"
CABAL_VERSION_BUILD: "3.8.1.0"
before_script:
- *before-script-build
build:latest-linux-amd64:
extends: .build
tags:
- arch:amd64
- os:linux
script:
- >
docker build
--build-arg GHC_VERSION_BUILD
--build-arg CABAL_VERSION_BUILD
-t $CI_APP_REPO:$CI_APP_TAG-linux-amd64
-t $CI_APP_REPO:$VERSION_MAJ_MIN_PAT-linux-amd64
-f latest.Dockerfile .
- |
docker push $CI_APP_REPO:$CI_APP_TAG-linux-amd64
docker push $CI_APP_REPO:$VERSION_MAJ_MIN_PAT-linux-amd64
rules:
- if: $CI_COMMIT_BRANCH == "master" && $CI_BUILD_PLATFORMS =~ /(linux\/amd64)/
changes:
- latest.Dockerfile
build:latest-linux-arm64v8:
extends: .build
tags:
- arch:arm64/v8
- os:linux
script:
- >
docker build
--build-arg GHC_VERSION_BUILD