hackport-0.9.0.0: cabal/.gitlab-ci.yml
stages:
- build
variables:
# Commit of ghc/ci-images repository from which to pull Docker images
DOCKER_REV: "572353e0644044fe3a5465bba4342a9a0b0eb60e"
GHC_VERSION: 9.2.3
CABAL_INSTALL_VERSION: 3.6.2.0
workflow:
rules:
- if: $CI_COMMIT_TAG
when: always
# Triggered if you start it from the gitlab web ui
- if: '$CI_PIPELINE_SOURCE == "web"'
when: always
- when: never
.build:
stage: build
script:
- bash .gitlab/ci.sh
artifacts:
expire_in: 2 week
paths:
- out/*
build-linux:
extends: .build
parallel:
matrix:
- ARCH: i386
TAG: x86_64-linux
OS:
- deb9
- ARCH: x86_64
TAG: x86_64-linux
OS:
- centos7
- deb9
- fedora33
- rocky8
- ubuntu18_04
- ubuntu20_04
- deb10
- deb11
- ARCH: aarch64
TAG: aarch64-linux
OS:
- deb10
- deb11
tags:
- $TAG
image: "registry.gitlab.haskell.org/ghc/ci-images/$PLATFORM:$DOCKER_REV"
variables:
PLATFORM: "${ARCH}-linux-${OS}"
TARBALL_ARCHIVE_SUFFIX: $PLATFORM
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: "--enable-split-sections"
build-linux-alpine:
extends: .build
parallel:
matrix:
- ARCH: i386
OS: [alpine3_12]
GHC_VERSION: 9.0.2
- ARCH: x86_64
OS: [alpine3_12]
tags:
- x86_64-linux
before_script:
# for cabal build
- sudo apk add --no-cache zlib zlib-dev zlib-static
image: "registry.gitlab.haskell.org/ghc/ci-images/$PLATFORM:$DOCKER_REV"
variables:
PLATFORM: "${ARCH}-linux-${OS}"
TARBALL_ARCHIVE_SUFFIX: $PLATFORM
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static"
build-x86_64-darwin:
extends: .build
tags:
- x86_64-darwin
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-darwin
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: ""
build-aarch64-darwin:
stage: build
tags:
- aarch64-darwin-m1
before_script:
- export HOMEBREW_CHANGE_ARCH_TO_ARM=1
- arch -arm64 /bin/bash ./.gitlab/brew.sh llvm autoconf automake coreutils make tree
# C_INCLUDE_PATH: https://gitlab.haskell.org/ghc/ghc/-/issues/20592
script: |
export PATH="$CI_PROJECT_DIR/.brew/opt/llvm/bin:$CI_PROJECT_DIR/.brew/bin:$CI_PROJECT_DIR/.brew/sbin:$PATH"
export CC=$CI_PROJECT_DIR/.brew/opt/llvm/bin/clang
export CXX=$CI_PROJECT_DIR/.brew/opt/llvm/bin/clang++
export LD=ld
export AR=$CI_PROJECT_DIR/.brew/opt/llvm/bin/llvm-ar
export RANLIB=$CI_PROJECT_DIR/.brew/opt/llvm/bin/llvm-ranlib
export C_INCLUDE_PATH="`xcrun --show-sdk-path`/usr/include/ffi"
arch -arm64 /bin/bash ./.gitlab/ci.sh
after_script:
- rm -Rf /private/tmp/.brew_tmp
variables:
MACOSX_DEPLOYMENT_TARGET: "10.7"
TARBALL_ARCHIVE_SUFFIX: aarch64-darwin
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: ""
# Update periodically.
BREW_VERSION: 4.0.5
artifacts:
expire_in: 2 week
paths:
- out/*
cache:
paths:
- .brew
build-x86_64-windows:
extends: .build
script:
- $env:CHERE_INVOKING = "yes"
- bash '-lc' "ADD_CABAL_ARGS=$env:ADD_CABAL_ARGS GHC_VERSION=$env:GHC_VERSION CABAL_INSTALL_VERSION=$CABAL_INSTALL_VERSION .gitlab/ci.sh"
tags:
- new-x86_64-windows
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-windows
TARBALL_EXT: zip
ADD_CABAL_ARGS: ""
retry: 2