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