mirror of
https://github.com/haskell/haskell-language-server.git
synced 2024-09-11 08:45:35 +03:00
543 lines
12 KiB
YAML
543 lines
12 KiB
YAML
stages:
|
|
- build
|
|
- tar
|
|
- test
|
|
|
|
# Used for ci setup in the gitlab mirror of the project:
|
|
# https://gitlab.haskell.org/haskell/haskell-language-server/-/pipelines
|
|
variables:
|
|
# Commit of ghc/ci-images repository from which to pull Docker images
|
|
DOCKER_REV: "9e4c540d9e4972a36291dfdf81f079f37d748890"
|
|
|
|
CABAL_INSTALL_VERSION: 3.8.1.0
|
|
|
|
.windows_matrix: &windows_matrix
|
|
matrix:
|
|
- GHC_VERSION: 8.10.7
|
|
CABAL_PROJECT: cabal.project
|
|
- GHC_VERSION: 9.0.2
|
|
CABAL_PROJECT: cabal.project
|
|
- GHC_VERSION: 9.2.3
|
|
CABAL_PROJECT: cabal.project
|
|
- GHC_VERSION: 9.2.4
|
|
CABAL_PROJECT: cabal.project
|
|
- GHC_VERSION: 9.4.1
|
|
CABAL_PROJECT: cabal.project
|
|
- GHC_VERSION: 9.4.2
|
|
CABAL_PROJECT: cabal.project
|
|
|
|
workflow:
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
when: always
|
|
- when: never
|
|
|
|
.artifacts:
|
|
artifacts:
|
|
expire_in: 2 week
|
|
paths:
|
|
- out
|
|
|
|
.artifacts:short:
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- out
|
|
|
|
.build:
|
|
extends: .artifacts:short
|
|
stage: build
|
|
script:
|
|
- bash .gitlab/ci.sh
|
|
|
|
.test:
|
|
stage: test
|
|
script:
|
|
- bash .gitlab/test.sh
|
|
|
|
.aarch64-linux:
|
|
tags:
|
|
- aarch64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV"
|
|
|
|
.armv7-linux:
|
|
tags:
|
|
- armv7-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV"
|
|
|
|
.x86_64-linux-deb10:
|
|
tags:
|
|
- x86_64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
|
|
|
|
.x86_64-linux-deb9:
|
|
tags:
|
|
- x86_64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
|
|
|
|
.x86_64-linux-centos7:
|
|
tags:
|
|
- x86_64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV"
|
|
|
|
.x86_64-linux-fedora33:
|
|
tags:
|
|
- x86_64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
|
|
|
|
.x86_64-linux-alpine:
|
|
tags:
|
|
- x86_64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV"
|
|
|
|
|
|
######################
|
|
# aarch64 linux deb10
|
|
######################
|
|
|
|
build-aarch64-linux-deb10:
|
|
extends:
|
|
- .build
|
|
- .aarch64-linux
|
|
before_script:
|
|
- sudo apt update
|
|
- sudo apt install -y patchelf tree
|
|
variables:
|
|
ADD_CABAL_ARGS: ""
|
|
|
|
tar-aarch64-linux-deb10:
|
|
extends:
|
|
- .artifacts
|
|
- .aarch64-linux
|
|
stage: tar
|
|
needs: ["build-aarch64-linux-deb10"]
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: aarch64-deb10-linux
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-aarch64-linux-deb10:
|
|
extends:
|
|
- .test
|
|
- .aarch64-linux
|
|
needs: ["tar-aarch64-linux-deb10"]
|
|
before_script:
|
|
- sudo apt update
|
|
- sudo apt install -y tree
|
|
|
|
|
|
######################
|
|
# armv7 linux deb10
|
|
######################
|
|
|
|
build-armv7-linux-deb10:
|
|
extends:
|
|
- .build
|
|
- .armv7-linux
|
|
before_script:
|
|
- sudo apt update
|
|
- sudo apt install -y patchelf tree
|
|
variables:
|
|
ADD_CABAL_ARGS: ""
|
|
|
|
tar-armv7-linux-deb10:
|
|
extends:
|
|
- .artifacts
|
|
- .armv7-linux
|
|
stage: tar
|
|
needs: ["build-armv7-linux-deb10"]
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: armv7-deb10-linux
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-armv7-linux-deb10:
|
|
extends:
|
|
- .test
|
|
- .armv7-linux
|
|
needs: ["tar-armv7-linux-deb10"]
|
|
before_script:
|
|
- sudo apt update
|
|
- sudo apt install -y tree
|
|
|
|
|
|
######################
|
|
# x86_64 linux deb10
|
|
######################
|
|
|
|
build-x86_64-linux-deb10:
|
|
extends:
|
|
- .build
|
|
- .x86_64-linux-deb10
|
|
before_script:
|
|
- sudo apt update
|
|
- sudo apt install -y patchelf tree
|
|
variables:
|
|
ADD_CABAL_ARGS: "--enable-split-sections"
|
|
|
|
tar-x86_64-linux-deb10:
|
|
extends:
|
|
- .artifacts
|
|
- .x86_64-linux-deb10
|
|
stage: tar
|
|
needs: ["build-x86_64-linux-deb10"]
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-deb10-linux
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-x86_64-linux-deb10:
|
|
extends:
|
|
- .test
|
|
- .x86_64-linux-deb10
|
|
needs: ["tar-x86_64-linux-deb10"]
|
|
before_script:
|
|
- sudo apt update
|
|
- sudo apt install -y tree
|
|
|
|
######################
|
|
# x86_64 linux deb9
|
|
######################
|
|
|
|
build-x86_64-linux-deb9:
|
|
extends:
|
|
- .build
|
|
- .x86_64-linux-deb9
|
|
before_script:
|
|
- sudo apt update
|
|
- sudo apt install -y patchelf tree
|
|
variables:
|
|
ADD_CABAL_ARGS: "--enable-split-sections"
|
|
|
|
tar-x86_64-linux-deb9:
|
|
extends:
|
|
- .artifacts
|
|
- .x86_64-linux-deb9
|
|
stage: tar
|
|
needs: ["build-x86_64-linux-deb9"]
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-deb9-linux
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-x86_64-linux-deb9:
|
|
extends:
|
|
- .test
|
|
- .x86_64-linux-deb9
|
|
needs: ["tar-x86_64-linux-deb9"]
|
|
before_script:
|
|
- sudo apt update
|
|
- sudo apt install -y tree
|
|
|
|
######################
|
|
# x86_64 linux centos7
|
|
######################
|
|
|
|
build-x86_64-linux-centos7:
|
|
extends:
|
|
- .build
|
|
- .x86_64-linux-centos7
|
|
before_script:
|
|
- sudo yum install -y epel-release
|
|
- sudo yum install -y patchelf tree
|
|
variables:
|
|
ADD_CABAL_ARGS: "--enable-split-sections"
|
|
|
|
tar-x86_64-linux-centos7:
|
|
extends:
|
|
- .artifacts
|
|
- .x86_64-linux-centos7
|
|
stage: tar
|
|
needs: ["build-x86_64-linux-centos7"]
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-centos7-linux
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-x86_64-linux-centos7:
|
|
extends:
|
|
- .test
|
|
- .x86_64-linux-centos7
|
|
needs: ["tar-x86_64-linux-centos7"]
|
|
before_script:
|
|
- sudo yum install -y tree
|
|
|
|
######################
|
|
# x86_64 linux fedora33
|
|
######################
|
|
|
|
build-x86_64-linux-fedora33:
|
|
extends:
|
|
- .build
|
|
- .x86_64-linux-fedora33
|
|
before_script:
|
|
- sudo dnf install -y patchelf tree
|
|
variables:
|
|
ADD_CABAL_ARGS: "--enable-split-sections"
|
|
|
|
tar-x86_64-linux-fedora33:
|
|
extends:
|
|
- .artifacts
|
|
- .x86_64-linux-fedora33
|
|
stage: tar
|
|
needs: ["build-x86_64-linux-fedora33"]
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-fedora33-linux
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-x86_64-linux-fedora33:
|
|
extends:
|
|
- .test
|
|
- .x86_64-linux-fedora33
|
|
needs: ["tar-x86_64-linux-fedora33"]
|
|
before_script:
|
|
- sudo dnf install -y tree
|
|
|
|
|
|
######################
|
|
# x86_64 linux alpine
|
|
######################
|
|
|
|
build-x86_64-linux-alpine:
|
|
extends:
|
|
- .build
|
|
- .x86_64-linux-alpine
|
|
before_script:
|
|
- sudo apk add --no-cache tar zlib zlib-dev zlib-static bzip2 bzip2-dev bzip2-static gmp gmp-dev xz xz-dev ncurses-static patchelf findutils tree
|
|
variables:
|
|
ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static"
|
|
|
|
tar-x86_64-linux-alpine:
|
|
extends:
|
|
- .artifacts
|
|
- .x86_64-linux-alpine
|
|
stage: tar
|
|
needs: ["build-x86_64-linux-alpine"]
|
|
before_script:
|
|
- sudo apk add --no-cache tar zlib zlib-dev zlib-static bzip2 bzip2-dev bzip2-static gmp gmp-dev xz xz-dev ncurses-static
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-alpine3.12-linux
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-x86_64-linux-alpine:
|
|
extends:
|
|
- .test
|
|
- .x86_64-linux-alpine
|
|
needs: ["tar-x86_64-linux-alpine"]
|
|
before_script:
|
|
- sudo apk add --no-cache tar zlib zlib-dev zlib-static bzip2 bzip2-dev bzip2-static gmp gmp-dev xz xz-dev ncurses-static tree
|
|
|
|
|
|
######################
|
|
# x86_64 freebsd 12
|
|
######################
|
|
|
|
build-x86_64-freebsd12:
|
|
extends: .build
|
|
before_script:
|
|
- sudo pkg update
|
|
- sudo pkg install --yes patchelf gmake tree binutils
|
|
tags:
|
|
- x86_64-freebsd12
|
|
variables:
|
|
ADD_CABAL_ARGS: "--enable-split-sections -j1"
|
|
|
|
tar-x86_64-freebsd12:
|
|
extends: .artifacts
|
|
stage: tar
|
|
needs: ["build-x86_64-freebsd12"]
|
|
tags:
|
|
- x86_64-freebsd12
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-unknown-freebsd12
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-x86_64-freebsd12:
|
|
extends: .test
|
|
needs: ["tar-x86_64-freebsd12"]
|
|
tags:
|
|
- x86_64-freebsd12
|
|
before_script:
|
|
- sudo pkg update
|
|
- sudo pkg install --yes patchelf gmake tree binutils
|
|
|
|
|
|
######################
|
|
# x86_64 freebsd 13
|
|
######################
|
|
|
|
build-x86_64-freebsd13:
|
|
extends: .build
|
|
tags:
|
|
- x86_64-freebsd13
|
|
before_script:
|
|
- sudo pkg update
|
|
- sudo pkg install --yes compat12x-amd64 patchelf gmake tree binutils
|
|
- sudo ln -s libncurses.so.6 /usr/local/lib/libncurses.so.6.2
|
|
variables:
|
|
ADD_CABAL_ARGS: "--enable-split-sections -j1"
|
|
|
|
tar-x86_64-freebsd13:
|
|
extends: .artifacts
|
|
stage: tar
|
|
needs: ["build-x86_64-freebsd13"]
|
|
tags:
|
|
- x86_64-freebsd13
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-unknown-freebsd13
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-x86_64-freebsd13:
|
|
extends: .test
|
|
needs: ["tar-x86_64-freebsd13"]
|
|
tags:
|
|
- x86_64-freebsd13
|
|
before_script:
|
|
- sudo pkg update
|
|
- sudo pkg install --yes compat12x-amd64 gmake tree binutils
|
|
- sudo ln -s libncurses.so.6 /usr/local/lib/libncurses.so.6.2
|
|
|
|
|
|
######################
|
|
# x86_64 darwin
|
|
######################
|
|
|
|
build-x86_64-darwin:
|
|
extends: .build
|
|
tags:
|
|
- x86_64-darwin
|
|
variables:
|
|
ADD_CABAL_ARGS: ""
|
|
before_script:
|
|
- /bin/bash ./.gitlab/brew.sh autoconf automake coreutils make tree
|
|
script: |
|
|
export PATH="$CI_PROJECT_DIR/.brew/bin:$CI_PROJECT_DIR/.brew/sbin:$PATH"
|
|
/bin/bash ./.gitlab/ci.sh
|
|
after_script:
|
|
- rm -Rf /private/tmp/.brew_tmp
|
|
|
|
tar-x86_64-darwin:
|
|
extends: .artifacts
|
|
stage: tar
|
|
needs: ["build-x86_64-darwin"]
|
|
tags:
|
|
- x86_64-darwin
|
|
before_script:
|
|
- /bin/bash ./.gitlab/brew.sh autoconf automake coreutils make tree
|
|
script: |
|
|
export PATH="$CI_PROJECT_DIR/.brew/bin:$CI_PROJECT_DIR/.brew/sbin:$PATH"
|
|
/bin/bash ./.gitlab/tar.sh
|
|
after_script:
|
|
- rm -Rf /private/tmp/.brew_tmp
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-apple-darwin
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-x86_64-darwin:
|
|
extends: .test
|
|
needs: ["tar-x86_64-darwin"]
|
|
tags:
|
|
- x86_64-darwin
|
|
before_script:
|
|
- /bin/bash ./.gitlab/brew.sh make tree
|
|
script: |
|
|
export PATH="$CI_PROJECT_DIR/.brew/bin:$CI_PROJECT_DIR/.brew/sbin:$PATH"
|
|
/bin/bash .gitlab/test.sh
|
|
after_script:
|
|
- rm -Rf /private/tmp/.brew_tmp
|
|
|
|
|
|
######################
|
|
# aarch64 darwin
|
|
######################
|
|
|
|
build-aarch64-darwin:
|
|
extends: .artifacts:short
|
|
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
|
|
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
|
|
arch -arm64 /bin/bash ./.gitlab/ci.sh
|
|
after_script:
|
|
- rm -Rf /private/tmp/.brew_tmp
|
|
variables:
|
|
MACOSX_DEPLOYMENT_TARGET: "10.7"
|
|
ADD_CABAL_ARGS: ""
|
|
|
|
tar-aarch64-darwin:
|
|
extends: .artifacts
|
|
stage: tar
|
|
needs: ["build-aarch64-darwin"]
|
|
tags:
|
|
- aarch64-darwin-m1
|
|
script:
|
|
- arch -arm64 /bin/bash ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: aarch64-apple-darwin
|
|
TARBALL_EXT: tar.xz
|
|
|
|
test-aarch64-darwin:
|
|
extends: .test
|
|
needs: ["tar-aarch64-darwin"]
|
|
tags:
|
|
- aarch64-darwin-m1
|
|
before_script:
|
|
- export HOMEBREW_CHANGE_ARCH_TO_ARM=1
|
|
- arch -arm64 /bin/bash ./.gitlab/brew.sh make tree
|
|
script: |
|
|
export PATH="$CI_PROJECT_DIR/.brew/opt/llvm/bin:$CI_PROJECT_DIR/.brew/bin:$CI_PROJECT_DIR/.brew/sbin:$PATH"
|
|
arch -arm64 /bin/bash ./.gitlab/test.sh
|
|
after_script:
|
|
- rm -Rf /private/tmp/.brew_tmp
|
|
|
|
|
|
######################
|
|
# x86_64 windows
|
|
######################
|
|
|
|
build-x86_64-windows:
|
|
extends: .build
|
|
tags:
|
|
- new-x86_64-windows
|
|
parallel: *windows_matrix
|
|
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"
|
|
variables:
|
|
ADD_CABAL_ARGS: ""
|
|
|
|
tar-x86_64-windows:
|
|
extends: .artifacts
|
|
stage: tar
|
|
needs: ["build-x86_64-windows"]
|
|
tags:
|
|
- new-x86_64-windows
|
|
script:
|
|
- $env:CHERE_INVOKING = "yes"
|
|
- bash '-lc' "TARBALL_ARCHIVE_SUFFIX=$env:TARBALL_ARCHIVE_SUFFIX TARBALL_EXT=$env:TARBALL_EXT .gitlab/tar.sh"
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-unknown-mingw32
|
|
TARBALL_EXT: zip
|