Skip to content

Implement distribution of dynamic builds #2675

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 34 commits into from
Feb 11, 2022
Merged
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
8ff3808
Implement distribution of dynamic builds
hasufell Feb 1, 2022
ce17b11
Use ghcup to detect GHC libdir, if available
hasufell Feb 1, 2022
b38b1f6
Factor out error function
hasufell Feb 1, 2022
bb32ffa
Fix building for multiple GHCs
hasufell Feb 1, 2022
f7beb71
Add version rule to bindist Makefile
hasufell Feb 1, 2022
b6e576e
Do libdir detection in haskell-language-server-wrapper
hasufell Feb 2, 2022
efb0608
Fix CI to build proper bindists
hasufell Feb 2, 2022
b3a09b0
Compare ABI hashes of 'ghc' pkg and deps
hasufell Feb 2, 2022
a71bf15
Add --global to ghc-pkg invocations
hasufell Feb 2, 2022
7863221
Add CI tests
hasufell Feb 2, 2022
5d1028c
Implement --print-libdir for hls exe as well
hasufell Feb 2, 2022
7ba0415
Fix make
hasufell Feb 2, 2022
88a375f
Compare all boot packages for ABI
hasufell Feb 3, 2022
2e861df
Fix hls binary name
hasufell Feb 3, 2022
33893e0
Fix exit code when no HLS exe could be found
hasufell Feb 3, 2022
58dab4f
Fix dll on mac
hasufell Feb 3, 2022
472955e
Add more distros
hasufell Feb 3, 2022
e508762
Fix test on CentOS 7
hasufell Feb 3, 2022
17b66dc
Add after_script to darwin runs
hasufell Feb 3, 2022
6259067
Refactor wrapper.in and make it more robust on Darwin
hasufell Feb 4, 2022
476d0c9
Also print pkg names additionally to abi hash
hasufell Feb 4, 2022
ed9bf02
Improve gitlab CI
hasufell Feb 4, 2022
2d10024
Don't let stack install GHC
hasufell Feb 4, 2022
23aa27d
Document `bindist/ghcs` file
hasufell Feb 6, 2022
ae442fb
Make ghc{,-pkg} detection more robust
hasufell Feb 6, 2022
db3bf2f
Exit early when GHC_LIBDIR and GHC_BIN are set
hasufell Feb 7, 2022
6baf21f
Reduce space in CI
hasufell Feb 7, 2022
23fc39c
Fix CI issues
hasufell Feb 8, 2022
639016e
Add Makefile documentation
hasufell Feb 8, 2022
a611f3f
Fix FreeBSD build
hasufell Feb 8, 2022
4a8f199
Fix
hasufell Feb 8, 2022
57e0a06
Fix ABI hashes
hasufell Feb 8, 2022
166eba8
Make sure sub-make fails properly
hasufell Feb 8, 2022
ef35281
Merge branch 'master' into hasufell/PR/distribute-dyn-builds
pepeiborra Feb 10, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Improve gitlab CI
  • Loading branch information
hasufell committed Feb 6, 2022
commit ed9bf0221b9fdf91b5d5e5693536faeade19f02e
182 changes: 98 additions & 84 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,41 +51,73 @@ workflow:
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-fedora27:
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora27:$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
extends:
- .build
- .aarch64-linux
before_script:
- sudo apt update
- sudo apt install -y patchelf tree
tags:
- aarch64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV"
variables:
ADD_CABAL_ARGS: ""

tar-aarch64-linux-deb10:
extends: .artifacts
extends:
- .artifacts
- .aarch64-linux
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-deb10-linux
TARBALL_EXT: tar.xz

test-aarch64-linux-deb10:
extends: .test
extends:
- .test
- .aarch64-linux
needs: ["tar-aarch64-linux-deb10"]
tags:
- aarch64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV"
before_script:
- sudo apt update
- sudo apt install -y tree
Expand All @@ -96,35 +128,32 @@ test-aarch64-linux-deb10:
######################

build-armv7-linux-deb10:
extends: .build
extends:
- .build
- .armv7-linux
before_script:
- sudo apt update
- sudo apt install -y patchelf tree
tags:
- armv7-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV"
variables:
ADD_CABAL_ARGS: ""

tar-armv7-linux-deb10:
extends: .artifacts
extends:
- .artifacts
- .armv7-linux
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-deb10-linux
TARBALL_EXT: tar.xz

test-armv7-linux-deb10:
extends: .test
extends:
- .test
- .armv7-linux
needs: ["tar-armv7-linux-deb10"]
tags:
- armv7-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV"
before_script:
- sudo apt update
- sudo apt install -y tree
Expand All @@ -135,35 +164,32 @@ test-armv7-linux-deb10:
######################

build-x86_64-linux-deb10:
extends: .build
extends:
- .build
- .x86_64-linux-deb10
before_script:
- sudo apt update
- sudo apt install -y patchelf tree
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
variables:
ADD_CABAL_ARGS: "--enable-split-sections"

tar-x86_64-linux-deb10:
extends: .artifacts
extends:
- .artifacts
- .x86_64-linux-deb10
stage: tar
needs: ["build-x86_64-linux-deb10"]
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-deb10-linux
TARBALL_EXT: tar.xz

test-x86_64-linux-deb10:
extends: .test
extends:
- .test
- .x86_64-linux-deb10
needs: ["tar-x86_64-linux-deb10"]
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
before_script:
- sudo apt update
- sudo apt install -y tree
Expand All @@ -173,35 +199,32 @@ test-x86_64-linux-deb10:
######################

build-x86_64-linux-deb9:
extends: .build
extends:
- .build
- .x86_64-linux-deb9
before_script:
- sudo apt update
- sudo apt install -y patchelf tree
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
variables:
ADD_CABAL_ARGS: "--enable-split-sections"

tar-x86_64-linux-deb9:
extends: .artifacts
extends:
- .artifacts
- .x86_64-linux-deb9
stage: tar
needs: ["build-x86_64-linux-deb9"]
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
script:
- ./.gitlab/tar.sh
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-deb9-linux
TARBALL_EXT: tar.xz

test-x86_64-linux-deb9:
extends: .test
extends:
- .test
- .x86_64-linux-deb9
needs: ["tar-x86_64-linux-deb9"]
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
before_script:
- sudo apt update
- sudo apt install -y tree
Expand All @@ -211,35 +234,32 @@ test-x86_64-linux-deb9:
######################

build-x86_64-linux-centos7:
extends: .build
extends:
- .build
- .x86_64-linux-centos7
before_script:
- sudo yum install -y epel-release
- sudo yum install -y patchelf tree
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV"
variables:
ADD_CABAL_ARGS: "--enable-split-sections"

tar-x86_64-linux-centos7:
extends: .artifacts
extends:
- .artifacts
- .x86_64-linux-centos7
stage: tar
needs: ["build-x86_64-linux-centos7"]
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV"
script:
- ./.gitlab/tar.sh
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-centos7-linux
TARBALL_EXT: tar.xz

test-x86_64-linux-centos7:
extends: .test
extends:
- .test
- .x86_64-linux-centos7
needs: ["tar-x86_64-linux-centos7"]
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV"
before_script:
- sudo yum install -y tree

Expand All @@ -248,34 +268,31 @@ test-x86_64-linux-centos7:
######################

build-x86_64-linux-fedora27:
extends: .build
extends:
- .build
- .x86_64-linux-fedora27
before_script:
- sudo dnf install -y patchelf tree
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora27:$DOCKER_REV"
variables:
ADD_CABAL_ARGS: "--enable-split-sections"

tar-x86_64-linux-fedora27:
extends: .artifacts
extends:
- .artifacts
- .x86_64-linux-fedora27
stage: tar
needs: ["build-x86_64-linux-fedora27"]
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora27:$DOCKER_REV"
script:
- ./.gitlab/tar.sh
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-fedora27-linux
TARBALL_EXT: tar.xz

test-x86_64-linux-fedora27:
extends: .test
extends:
- .test
- .x86_64-linux-fedora27
needs: ["tar-x86_64-linux-fedora27"]
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora27:$DOCKER_REV"
before_script:
- sudo dnf install -y tree

Expand All @@ -285,22 +302,20 @@ test-x86_64-linux-fedora27:
######################

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"
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
extends:
- .artifacts
- .x86_64-linux-alpine
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"
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:
Expand All @@ -310,11 +325,10 @@ tar-x86_64-linux-alpine:
TARBALL_EXT: tar.xz

test-x86_64-linux-alpine:
extends: .test
extends:
- .test
- .x86_64-linux-alpine
needs: ["tar-x86_64-linux-alpine"]
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 tar zlib zlib-dev zlib-static bzip2 bzip2-dev bzip2-static gmp gmp-dev xz xz-dev ncurses-static tree

Expand Down