539 lines
12 KiB
YAML
539 lines
12 KiB
YAML
stages:
|
|
- hlint
|
|
- test
|
|
- release
|
|
|
|
variables:
|
|
GIT_SSL_NO_VERIFY: "1"
|
|
|
|
# Commit of ghc/ci-images repository from which to pull Docker images
|
|
DOCKER_REV: 8d0224e6b2a08157649651e69302380b2bd24e11
|
|
|
|
############################################################
|
|
# CI Step
|
|
############################################################
|
|
|
|
.debian:
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
|
|
tags:
|
|
- x86_64-linux
|
|
variables:
|
|
OS: "LINUX"
|
|
ARCH: "64"
|
|
CABAL_DIR: "$CI_PROJECT_DIR/cabal"
|
|
CROSS: ""
|
|
|
|
.alpine:64bit:
|
|
image: "alpine:3.12"
|
|
tags:
|
|
- x86_64-linux
|
|
variables:
|
|
OS: "LINUX"
|
|
ARCH: "64"
|
|
CABAL_DIR: "$CI_PROJECT_DIR/cabal"
|
|
|
|
.alpine:32bit:
|
|
image: "i386/alpine:3.12"
|
|
tags:
|
|
- x86_64-linux
|
|
variables:
|
|
OS: "LINUX"
|
|
ARCH: "32"
|
|
CABAL_DIR: "$CI_PROJECT_DIR/cabal"
|
|
|
|
.linux:armv7:
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV"
|
|
tags:
|
|
- armv7-linux
|
|
variables:
|
|
OS: "LINUX"
|
|
ARCH: "ARM"
|
|
CABAL_DIR: "$CI_PROJECT_DIR/cabal"
|
|
|
|
.linux:aarch64:
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV"
|
|
tags:
|
|
- aarch64-linux
|
|
variables:
|
|
OS: "LINUX"
|
|
ARCH: "ARM64"
|
|
CABAL_DIR: "$CI_PROJECT_DIR/cabal"
|
|
|
|
.darwin:
|
|
tags:
|
|
- x86_64-darwin
|
|
variables:
|
|
OS: "DARWIN"
|
|
ARCH: "64"
|
|
CABAL_DIR: "$CI_PROJECT_DIR/cabal"
|
|
|
|
.darwin:aarch64:
|
|
tags:
|
|
- aarch64-darwin-m1
|
|
variables:
|
|
OS: "DARWIN"
|
|
ARCH: "ARM64"
|
|
CABAL_DIR: "$CI_PROJECT_DIR/cabal"
|
|
|
|
.freebsd:
|
|
tags:
|
|
- x86_64-freebsd
|
|
variables:
|
|
OS: "FREEBSD"
|
|
ARCH: "64"
|
|
CABAL_DIR: "$CI_PROJECT_DIR/cabal"
|
|
|
|
.windows:
|
|
tags:
|
|
- new-x86_64-windows
|
|
variables:
|
|
OS: "WINDOWS"
|
|
ARCH: "64"
|
|
CABAL_DIR: "$CI_PROJECT_DIR/cabal"
|
|
|
|
.root_cleanup:
|
|
after_script:
|
|
- bash ./.gitlab/after_script.sh
|
|
|
|
.test_ghcup_version:
|
|
script:
|
|
- bash ./.gitlab/script/ghcup_version.sh
|
|
variables:
|
|
JSON_VERSION: "0.0.7"
|
|
artifacts:
|
|
expire_in: 2 week
|
|
paths:
|
|
- golden
|
|
- dist-newstyle/cache/
|
|
when: on_failure
|
|
|
|
# .test_ghcup_scoop:
|
|
# script:
|
|
# - cl /O1 scoop-better-shimexe/shim.c
|
|
|
|
.test_ghcup_version:linux:
|
|
extends:
|
|
- .test_ghcup_version
|
|
- .debian
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/install_deps.sh
|
|
|
|
.test_ghcup_version:linux32:
|
|
extends:
|
|
- .test_ghcup_version
|
|
- .alpine:32bit
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/alpine/install_deps.sh
|
|
|
|
.test_ghcup_version:armv7:
|
|
extends:
|
|
- .test_ghcup_version
|
|
- .linux:armv7
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/install_deps.sh
|
|
|
|
.test_ghcup_version:aarch64:
|
|
extends:
|
|
- .test_ghcup_version
|
|
- .linux:aarch64
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/install_deps.sh
|
|
|
|
.test_ghcup_version:darwin:
|
|
extends:
|
|
- .test_ghcup_version
|
|
- .darwin
|
|
- .root_cleanup
|
|
before_script:
|
|
- ./.gitlab/before_script/darwin/install_deps.sh
|
|
|
|
.test_ghcup_version:darwin:aarch64:
|
|
extends:
|
|
- .test_ghcup_version
|
|
- .darwin:aarch64
|
|
- .root_cleanup
|
|
script: |
|
|
set -Eeuo pipefail
|
|
function runInNixShell() {
|
|
time nix-shell $CI_PROJECT_DIR/.gitlab/shell.nix \
|
|
-I nixpkgs=https://github.com/angerman/nixpkgs/archive/75f7281738b.tar.gz \
|
|
--argstr system "aarch64-darwin" \
|
|
--pure \
|
|
--keep CI_PROJECT_DIR \
|
|
--keep MACOSX_DEPLOYMENT_TARGET \
|
|
--keep JSON_VERSION \
|
|
--keep ARTIFACT \
|
|
--keep OS \
|
|
--keep ARCH \
|
|
--keep CABAL_DIR \
|
|
--keep GHC_VERSION \
|
|
--keep CABAL_VERSION \
|
|
--run "$1" 2>&1
|
|
}
|
|
runInNixShell ./.gitlab/before_script/darwin/install_deps.sh 2>&1
|
|
runInNixShell ./.gitlab/script/ghcup_version.sh 2>&1
|
|
|
|
.test_ghcup_version:freebsd:
|
|
extends:
|
|
- .test_ghcup_version
|
|
- .freebsd
|
|
- .root_cleanup
|
|
before_script:
|
|
- ./.gitlab/before_script/freebsd/install_deps.sh
|
|
|
|
.test_ghcup_version:windows:
|
|
extends:
|
|
- .test_ghcup_version
|
|
- .windows
|
|
- .root_cleanup
|
|
before_script:
|
|
- set CABAL_DIR="$CI_PROJECT_DIR/cabal"
|
|
- bash ./.gitlab/before_script/windows/install_deps.sh
|
|
|
|
# .test_ghcup_scoop:windows:
|
|
# extends:
|
|
# - .windows
|
|
# - .test_ghcup_scoop
|
|
# - .root_cleanup
|
|
|
|
.release_ghcup:
|
|
script:
|
|
- bash ./.gitlab/script/ghcup_release.sh
|
|
artifacts:
|
|
expire_in: 2 week
|
|
paths:
|
|
- out
|
|
- dist-newstyle/cache/
|
|
only:
|
|
- tags
|
|
variables:
|
|
JSON_VERSION: "0.0.7"
|
|
|
|
######## stack test ########
|
|
|
|
test:linux:stack:
|
|
stage: test
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/install_deps_minimal.sh
|
|
script:
|
|
- ./.gitlab/script/ghcup_stack.sh
|
|
extends:
|
|
- .debian
|
|
needs: []
|
|
|
|
######## bootstrap test ########
|
|
|
|
test:linux:bootstrap_script:
|
|
stage: test
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/install_deps_minimal.sh
|
|
script:
|
|
- ./.gitlab/script/ghcup_bootstrap.sh
|
|
variables:
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
extends:
|
|
- .debian
|
|
- .root_cleanup
|
|
needs: []
|
|
|
|
test:windows:bootstrap_powershell_script:
|
|
stage: test
|
|
script:
|
|
- ./bootstrap-haskell.ps1 -InstallDir $CI_PROJECT_DIR -BootstrapUrl $CI_PROJECT_DIR/bootstrap-haskell -InBash
|
|
after_script:
|
|
- "[Environment]::SetEnvironmentVariable('GHCUP_INSTALL_BASE_PREFIX', $null, [System.EnvironmentVariableTarget]::User)"
|
|
- "[Environment]::SetEnvironmentVariable('GHCUP_MSYS2', $null, [System.EnvironmentVariableTarget]::User)"
|
|
- "[Environment]::SetEnvironmentVariable('CABAL_DIR', $null, [System.EnvironmentVariableTarget]::User)"
|
|
- bash ./.gitlab/after_script.sh
|
|
variables:
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
extends:
|
|
- .windows
|
|
needs: []
|
|
|
|
######## linux test ########
|
|
|
|
test:linux:
|
|
stage: test
|
|
extends: .test_ghcup_version:linux
|
|
variables:
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
needs: []
|
|
|
|
test:linux:cross-armv7:
|
|
stage: test
|
|
extends:
|
|
- .test_ghcup_version
|
|
- .debian
|
|
variables:
|
|
GHC_VERSION: "8.10.5"
|
|
GHC_TARGET_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
CROSS: "arm-linux-gnueabihf"
|
|
needs: []
|
|
when: manual
|
|
allow_failure: true
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/install_deps.sh
|
|
script:
|
|
- ./.gitlab/script/ghcup_cross.sh
|
|
|
|
test:linux:git:hadrian:
|
|
stage: test
|
|
extends:
|
|
- .test_ghcup_version
|
|
- .debian
|
|
variables:
|
|
GHC_VERSION: "8.10.6"
|
|
GHC_GIT_TAG: "ghc-9.0.1-release"
|
|
GHC_GIT_VERSION: "9.0.1"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
CROSS: ""
|
|
needs: []
|
|
when: manual
|
|
allow_failure: true
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/install_deps.sh
|
|
script:
|
|
- ./.gitlab/script/ghcup_git.sh
|
|
|
|
|
|
######## linux 32bit test ########
|
|
|
|
test:linux:32bit:
|
|
stage: test
|
|
extends: .test_ghcup_version:linux32
|
|
variables:
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.2.0.0"
|
|
needs: []
|
|
|
|
######## arm tests ########
|
|
|
|
test:linux:armv7:
|
|
stage: test
|
|
extends: .test_ghcup_version:armv7
|
|
variables:
|
|
GHC_VERSION: "8.10.4"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
CROSS: ""
|
|
when: manual
|
|
needs: []
|
|
|
|
test:linux:aarch64:
|
|
stage: test
|
|
extends: .test_ghcup_version:aarch64
|
|
variables:
|
|
GHC_VERSION: "8.10.4"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
CROSS: ""
|
|
when: manual
|
|
needs: []
|
|
|
|
######## darwin test ########
|
|
|
|
test:mac:
|
|
stage: test
|
|
extends: .test_ghcup_version:darwin
|
|
variables:
|
|
GHC_VERSION: "8.10.4"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
needs: []
|
|
|
|
test:mac:aarch64:
|
|
stage: test
|
|
extends: .test_ghcup_version:darwin:aarch64
|
|
variables:
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
needs: []
|
|
allow_failure: true
|
|
|
|
|
|
######## freebsd test ########
|
|
|
|
test:freebsd:
|
|
stage: test
|
|
extends: .test_ghcup_version:freebsd
|
|
variables:
|
|
GHC_VERSION: "8.10.4"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
allow_failure: true # freebsd runners are unreliable
|
|
when: manual
|
|
needs: []
|
|
|
|
######## windows test ########
|
|
|
|
test:windows:
|
|
stage: test
|
|
extends: .test_ghcup_version:windows
|
|
variables:
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
needs: []
|
|
|
|
# test:windows:scoop:
|
|
# stage: test
|
|
# extends: .test_ghcup_scoop:windows
|
|
# needs: []
|
|
|
|
######## linux release ########
|
|
|
|
release:linux:64bit:
|
|
stage: release
|
|
needs: ["test:linux"]
|
|
extends:
|
|
- .alpine:64bit
|
|
- .release_ghcup
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/alpine/install_deps.sh
|
|
variables:
|
|
ARTIFACT: "x86_64-linux-ghcup"
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
|
|
|
|
release:linux:32bit:
|
|
stage: release
|
|
needs: ["test:linux:32bit"]
|
|
extends:
|
|
- .alpine:32bit
|
|
- .release_ghcup
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/alpine/install_deps.sh
|
|
variables:
|
|
ARTIFACT: "i386-linux-ghcup"
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.2.0.0"
|
|
|
|
release:linux:armv7:
|
|
stage: release
|
|
needs: ["test:linux:armv7"]
|
|
extends:
|
|
- .linux:armv7
|
|
- .release_ghcup
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/install_deps.sh
|
|
variables:
|
|
ARTIFACT: "armv7-linux-ghcup"
|
|
GHC_VERSION: "8.10.4"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
CROSS: ""
|
|
|
|
release:linux:aarch64:
|
|
stage: release
|
|
needs: ["test:linux:aarch64"]
|
|
extends:
|
|
- .linux:aarch64
|
|
- .release_ghcup
|
|
before_script:
|
|
- ./.gitlab/before_script/linux/install_deps.sh
|
|
variables:
|
|
ARTIFACT: "aarch64-linux-ghcup"
|
|
GHC_VERSION: "8.10.4"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
CROSS: ""
|
|
|
|
######## darwin release ########
|
|
|
|
release:darwin:
|
|
stage: release
|
|
needs: ["test:mac"]
|
|
extends:
|
|
- .darwin
|
|
- .release_ghcup
|
|
- .root_cleanup
|
|
before_script:
|
|
- ./.gitlab/before_script/darwin/install_deps.sh
|
|
variables:
|
|
ARTIFACT: "x86_64-apple-darwin-ghcup"
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
MACOSX_DEPLOYMENT_TARGET: "10.7"
|
|
|
|
release:darwin:aarch64:
|
|
stage: release
|
|
needs: ["test:mac:aarch64"]
|
|
extends:
|
|
- .darwin:aarch64
|
|
- .release_ghcup
|
|
- .root_cleanup
|
|
script: |
|
|
set -Eeuo pipefail
|
|
function runInNixShell() {
|
|
time nix-shell $CI_PROJECT_DIR/.gitlab/shell.nix \
|
|
-I nixpkgs=https://github.com/angerman/nixpkgs/archive/75f7281738b.tar.gz \
|
|
--argstr system "aarch64-darwin" \
|
|
--pure \
|
|
--keep CI_PROJECT_DIR \
|
|
--keep MACOSX_DEPLOYMENT_TARGET \
|
|
--keep JSON_VERSION \
|
|
--keep ARTIFACT \
|
|
--keep OS \
|
|
--keep ARCH \
|
|
--keep CABAL_DIR \
|
|
--keep GHC_VERSION \
|
|
--keep CABAL_VERSION \
|
|
--run "$1" 2>&1
|
|
}
|
|
runInNixShell ./.gitlab/before_script/darwin/install_deps.sh 2>&1
|
|
runInNixShell ./.gitlab/script/ghcup_release.sh 2>&1
|
|
variables:
|
|
ARTIFACT: "aarch64-apple-darwin-ghcup"
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
MACOSX_DEPLOYMENT_TARGET: "10.7"
|
|
allow_failure: true
|
|
|
|
|
|
######## freebsd release ########
|
|
|
|
release:freebsd:
|
|
stage: release
|
|
needs: ["test:freebsd"]
|
|
extends:
|
|
- .freebsd
|
|
- .release_ghcup
|
|
- .root_cleanup
|
|
before_script:
|
|
- ./.gitlab/before_script/freebsd/install_deps.sh
|
|
variables:
|
|
ARTIFACT: "x86_64-portbld-freebsd-ghcup"
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
allow_failure: true
|
|
|
|
######## windows release ########
|
|
|
|
release:windows:
|
|
stage: release
|
|
needs: ["test:windows"]
|
|
extends:
|
|
- .windows
|
|
- .release_ghcup
|
|
- .root_cleanup
|
|
before_script:
|
|
- bash ./.gitlab/before_script/windows/install_deps.sh
|
|
variables:
|
|
ARTIFACT: "x86_64-mingw64-ghcup"
|
|
GHC_VERSION: "8.10.6"
|
|
CABAL_VERSION: "3.4.0.0"
|
|
|
|
######## hlint ########
|
|
|
|
hlint:
|
|
stage: hlint
|
|
extends:
|
|
- .debian
|
|
script:
|
|
- curl -sSL https://raw.github.com/ndmitchell/hlint/master/misc/run.sh | sh -s -- -r lib/ test/
|
|
allow_failure: true
|
|
artifacts:
|
|
expire_in: 2 week
|
|
paths:
|
|
- report.html
|
|
when: on_failure
|