Skip to content

Commit

Permalink
Improve gitlab CI
Browse files Browse the repository at this point in the history
  • Loading branch information
hasufell committed Dec 1, 2021
1 parent c85b612 commit 0e260e0
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 13 deletions.
51 changes: 49 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ variables:
# Commit of ghc/ci-images repository from which to pull Docker images
DOCKER_REV: "853f348f9caf38b08740b280296fbd34e09abb3a"

CABAL_INSTALL_VERSION: 3.4.0.0
CABAL_INSTALL_VERSION: 3.6.2.0

.default_matrix: &default_matrix
matrix:
Expand Down Expand Up @@ -46,39 +46,76 @@ build-aarch64-linux-deb10:
- aarch64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV"
parallel: *arm_matrix
variables:
TARBALL_ARCHIVE_SUFFIX: aarch64-linux-deb10
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: ""

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:
TARBALL_ARCHIVE_SUFFIX: armv7-linux-deb10
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: ""

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:
TARBALL_ARCHIVE_SUFFIX: armv7-linux-deb10
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: "--enable-split-sections"

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"
parallel: *default_matrix
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-linux-alpine
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static"

build-x86_64-freebsd:
build-x86_64-freebsd12:
extends: .build
tags:
- x86_64-freebsd12
parallel: *default_matrix
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-freebsd12
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: "--enable-split-sections"

build-x86_64-freebsd13:
extends: .build
tags:
- x86_64-freebsd13
parallel: *default_matrix
before_script:
- sudo pkg update
- sudo pkg install --yes compat12x-amd64
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-freebsd13
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: "--enable-split-sections"

build-x86_64-darwin:
extends: .build
tags:
- x86_64-darwin
parallel: *default_matrix
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-darwin
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: ""

build-aarch64-darwin:
tags:
Expand All @@ -95,12 +132,18 @@ build-aarch64-darwin:
--keep GHC_VERSION \
--keep CABAL_PROJECT \
--keep CABAL_INSTALL_VERSION \
--keep TARBALL_ARCHIVE_SUFFIX \
--keep TARBALL_EXT \
--keep ADD_CABAL_ARGS \
--run "$1" 2>&1
}
runInNixShell "cabal update && mkdir vendored && cd vendored && cabal unpack network-3.1.2.1 && cd network-3.1.2.1 && autoreconf -fi" 2>&1
runInNixShell "./.gitlab/ci.sh" 2>&1
variables:
MACOSX_DEPLOYMENT_TARGET: "10.7"
TARBALL_ARCHIVE_SUFFIX: aarch64-darwin
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: ""
parallel: *m1_matrix
artifacts:
expire_in: 2 week
Expand All @@ -112,3 +155,7 @@ build-x86_64-windows:
tags:
- new-x86_64-windows
parallel: *default_matrix
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-windows
TARBALL_EXT: zip
ADD_CABAL_ARGS: ""
43 changes: 32 additions & 11 deletions .gitlab/ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,38 @@ if ghc --info | grep -q integer-simple ; then
echo -e 'package blaze-textual\n flags: +integer-simple' >> cabal.project.local
fi

run cabal v2-install exe:haskell-language-server exe:haskell-language-server-wrapper \
-O2 \
-w "ghc-$GHC_VERSION" \
--project-file "$CABAL_PROJECT" \
--installdir="$CI_PROJECT_DIR/out" \
--install-method=copy \
--overwrite-policy=always \
--enable-executable-static \
--disable-profiling \
--disable-tests \
--enable-split-sections \
args=(
-O2
-w "ghc-$GHC_VERSION"
--project-file "$CABAL_PROJECT"
--disable-profiling
--disable-tests
--enable-executable-stripping
${ADD_CABAL_ARGS}
)

run cabal v2-build ${args[@]} exe:haskell-language-server exe:haskell-language-server-wrapper

mkdir "$CI_PROJECT_DIR/out"

cp "$(cabal list-bin ${args[@]} exe:haskell-language-server)" "$CI_PROJECT_DIR/out/haskell-language-server-${GHC_VERSION}"
cp "$(cabal list-bin ${args[@]} exe:haskell-language-server-wrapper)" "$CI_PROJECT_DIR/out/haskell-language-server-wrapper"

cp dist-newstyle/cache/plan.json "$CI_PROJECT_DIR/out/plan.json"

cd "$CI_PROJECT_DIR/out/"

# create tarball/zip
TARBALL_PREFIX="haskell-language-server-$("$CI_PROJECT_DIR/out/haskell-language-server-${GHC_VERSION}" --numeric-version)"
case "${TARBALL_EXT}" in
zip)
zip "${TARBALL_PREFIX}-${TARBALL_ARCHIVE_SUFFIX}.${TARBALL_EXT}" haskell-language-server-${GHC_VERSION} haskell-language-server-wrapper plan.json
;;
tar.xz)
tar caf "${TARBALL_PREFIX}-${TARBALL_ARCHIVE_SUFFIX}.${TARBALL_EXT}" haskell-language-server-${GHC_VERSION} haskell-language-server-wrapper plan.json
;;
*)
fail "Unknown TARBALL_EXT: ${TARBALL_EXT}"
;;
esac

0 comments on commit 0e260e0

Please # to comment.