mirror of
https://github.com/haskell/haskell-language-server.git
synced 2024-09-17 11:47:09 +03:00
f62ec3ec76
* Remove unused nix config * Add ghc-9.2.1 to gitlab build * Remove not needed alpine workaround * Use -j1 to fix oom in bsd-12 * Use -j1 to try fix oom in bsd-13 * exclude 9.2.1 for freebsd Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
299 lines
7.4 KiB
YAML
299 lines
7.4 KiB
YAML
stages:
|
|
- build
|
|
- tar
|
|
|
|
# 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: "4ed1a4f27828ba96a34662dc954335e29b470cd2"
|
|
|
|
CABAL_INSTALL_VERSION: 3.6.2.0
|
|
|
|
.default_matrix: &default_matrix
|
|
matrix:
|
|
- GHC_VERSION: 8.8.4
|
|
CABAL_PROJECT: cabal.project
|
|
- GHC_VERSION: 8.10.7
|
|
CABAL_PROJECT: cabal.project
|
|
- GHC_VERSION: 9.0.2
|
|
CABAL_PROJECT: cabal-ghc90.project
|
|
- GHC_VERSION: 9.2.1
|
|
CABAL_PROJECT: cabal-ghc921.project
|
|
|
|
# ghc-9.2.1 is broken for bsd
|
|
.freebsd_matrix: &freebsd_matrix
|
|
matrix:
|
|
- GHC_VERSION: 8.8.4
|
|
CABAL_PROJECT: cabal.project
|
|
- GHC_VERSION: 8.10.7
|
|
CABAL_PROJECT: cabal.project
|
|
- GHC_VERSION: 9.0.2
|
|
CABAL_PROJECT: cabal-ghc90.project
|
|
|
|
.m1_matrix: &m1_matrix
|
|
matrix:
|
|
- GHC_VERSION: 8.10.7
|
|
CABAL_PROJECT: cabal.project
|
|
|
|
.arm_matrix: &arm_matrix
|
|
matrix:
|
|
- GHC_VERSION: 8.10.7
|
|
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
|
|
|
|
build-aarch64-linux-deb10:
|
|
extends: .build
|
|
tags:
|
|
- aarch64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV"
|
|
parallel: *arm_matrix
|
|
variables:
|
|
ADD_CABAL_ARGS: ""
|
|
|
|
tar-aarch64-linux-deb10:
|
|
extends: .artifacts
|
|
stage: tar
|
|
needs: ["build-aarch64-linux-deb10"]
|
|
tags:
|
|
- aarch64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV"
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: aarch64-linux-deb10
|
|
TARBALL_EXT: tar.xz
|
|
|
|
build-armv7-linux-deb10:
|
|
extends: .build
|
|
tags:
|
|
- armv7-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV"
|
|
parallel: *arm_matrix
|
|
variables:
|
|
ADD_CABAL_ARGS: ""
|
|
|
|
tar-armv7-linux-deb10:
|
|
extends: .artifacts
|
|
stage: tar
|
|
needs: ["build-armv7-linux-deb10"]
|
|
tags:
|
|
- armv7-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV"
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: armv7-linux-deb10
|
|
TARBALL_EXT: tar.xz
|
|
|
|
build-x86_64-linux:
|
|
extends: .build
|
|
tags:
|
|
- x86_64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
|
|
parallel: *default_matrix
|
|
variables:
|
|
ADD_CABAL_ARGS: "--enable-split-sections"
|
|
|
|
tar-x86_64-linux:
|
|
extends: .artifacts
|
|
stage: tar
|
|
needs: ["build-x86_64-linux"]
|
|
tags:
|
|
- x86_64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-linux
|
|
TARBALL_EXT: tar.xz
|
|
|
|
build-x86_64-linux-alpine:
|
|
extends: .build
|
|
tags:
|
|
- x86_64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV"
|
|
before_script:
|
|
- sudo apk add --no-cache zlib zlib-dev zlib-static bzip2 bzip2-dev bzip2-static gmp gmp-dev xz xz-dev ncurses-static
|
|
parallel: *default_matrix
|
|
variables:
|
|
ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static"
|
|
|
|
tar-x86_64-linux-alpine:
|
|
extends: .artifacts
|
|
stage: tar
|
|
needs: ["build-x86_64-linux-alpine"]
|
|
tags:
|
|
- x86_64-linux
|
|
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV"
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-linux-alpine
|
|
TARBALL_EXT: tar.xz
|
|
|
|
build-x86_64-freebsd12:
|
|
extends: .build
|
|
tags:
|
|
- x86_64-freebsd12
|
|
parallel: *freebsd_matrix
|
|
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-freebsd12
|
|
TARBALL_EXT: tar.xz
|
|
|
|
build-x86_64-freebsd13:
|
|
extends: .build
|
|
tags:
|
|
- x86_64-freebsd13
|
|
parallel: *freebsd_matrix
|
|
before_script:
|
|
- sudo pkg update
|
|
- sudo pkg install --yes compat12x-amd64
|
|
- 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-freebsd13
|
|
TARBALL_EXT: tar.xz
|
|
|
|
build-x86_64-darwin:
|
|
extends: .build
|
|
tags:
|
|
- x86_64-darwin
|
|
parallel: *default_matrix
|
|
variables:
|
|
ADD_CABAL_ARGS: ""
|
|
|
|
tar-x86_64-darwin:
|
|
extends: .artifacts
|
|
stage: tar
|
|
needs: ["build-x86_64-darwin"]
|
|
tags:
|
|
- x86_64-darwin
|
|
script:
|
|
- ./.gitlab/tar.sh
|
|
variables:
|
|
TARBALL_ARCHIVE_SUFFIX: x86_64-darwin
|
|
TARBALL_EXT: tar.xz
|
|
|
|
build-aarch64-darwin:
|
|
extends: .artifacts:short
|
|
stage: build
|
|
tags:
|
|
- aarch64-darwin-m1
|
|
before_script:
|
|
# Install brew locally in the project dir. Packages will also be installed here.
|
|
- '[ -e "$CI_PROJECT_DIR/.brew" ] || git clone --depth=1 https://github.com/Homebrew/brew $CI_PROJECT_DIR/.brew'
|
|
- export PATH="$CI_PROJECT_DIR/.brew/bin:$CI_PROJECT_DIR/.brew/sbin:$PATH"
|
|
|
|
# otherwise we seem to get intel binaries
|
|
- export HOMEBREW_CHANGE_ARCH_TO_ARM=1
|
|
|
|
# make sure to not pollute the machine with temp files etc
|
|
- mkdir -p $CI_PROJECT_DIR/.brew_cache
|
|
- export HOMEBREW_CACHE=$CI_PROJECT_DIR/.brew_cache
|
|
- mkdir -p $CI_PROJECT_DIR/.brew_logs
|
|
- export HOMEBREW_LOGS=$CI_PROJECT_DIR/.brew_logs
|
|
- mkdir -p /private/tmp/.brew_tmp
|
|
- export HOMEBREW_TEMP=/private/tmp/.brew_tmp
|
|
|
|
# update and install packages
|
|
- brew update
|
|
- brew install llvm
|
|
- brew install autoconf automake coreutils
|
|
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: ""
|
|
parallel: *m1_matrix
|
|
|
|
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-darwin
|
|
TARBALL_EXT: tar.xz
|
|
|
|
build-x86_64-windows:
|
|
extends: .build
|
|
tags:
|
|
- new-x86_64-windows
|
|
parallel: *default_matrix
|
|
script:
|
|
- bash '-lc' 'pacman --noconfirm -S zip'
|
|
- $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-windows
|
|
TARBALL_EXT: zip
|