forked from haskell/cabal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
126 lines (118 loc) · 2.85 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
stages:
- build
variables:
# Commit of ghc/ci-images repository from which to pull Docker images
DOCKER_REV: "a9297a370025101b479cfd4977f8f910814e03ab"
GHC_VERSION: 9.6.4
CABAL_INSTALL_VERSION: 3.10.2.0
workflow:
rules:
- if: $CI_COMMIT_TAG
when: always
# Triggered if you start it from the gitlab web ui
- if: '$CI_PIPELINE_SOURCE == "web"'
when: always
- when: never
.build:
stage: build
script:
- bash .gitlab/ci.sh
artifacts:
expire_in: 2 week
paths:
- out/*
linux:
extends: .build
parallel:
matrix:
- ARCH: i386
TAG: x86_64-linux
OS:
- deb9
- deb10
- ARCH: x86_64
TAG: x86_64-linux
OS:
- centos7
- deb9
- deb10
- deb11
- deb12
- fedora33
- fedora36
- fedora38
- rocky8
- ubuntu18_04
- ubuntu20_04
- ubuntu22_04
- ARCH: aarch64
TAG: aarch64-linux
OS:
- deb10
- deb11
- deb12
tags:
- $TAG
image: "registry.gitlab.haskell.org/ghc/ci-images/$PLATFORM:$DOCKER_REV"
variables:
PLATFORM: "${ARCH}-linux-${OS}"
TARBALL_ARCHIVE_SUFFIX: $PLATFORM
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: "--enable-split-sections"
alpine-linux:
extends: .build
parallel:
matrix:
- ARCH: [i386, x86_64]
OS: [alpine3_12, alpine3_15, alpine3_17]
TAG: x86_64-linux
# Was 3_18 for i386 intentionally left off?
- ARCH: x86_64
OS: alpine3_18
TAG: x86_64-linux
- ARCH: [aarch64]
OS: [alpine3_18]
TAG: aarch64-linux
tags:
- $TAG
before_script:
# for cabal build
- sudo apk add --no-cache zlib zlib-dev zlib-static
image: "registry.gitlab.haskell.org/ghc/ci-images/$PLATFORM:$DOCKER_REV"
variables:
PLATFORM: "${ARCH}-linux-${OS}"
TARBALL_ARCHIVE_SUFFIX: $PLATFORM
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static"
darwin:
extends: .build
parallel:
matrix:
# Help me with names pls
- ARCH: x86_64
ARCHARCH: x86_64
- ARCH: aarch64
ARCHARCH: arm64
tags:
- ${ARCH}-darwin-m1
variables:
# Using 9.8.2 to work around
# https://gitlab.haskell.org/ghc/ghc/-/issues/24050
GHC_VERSION: 9.8.2
TARBALL_ARCHIVE_SUFFIX: ${ARCH}-darwin
TARBALL_EXT: tar.xz
ADD_CABAL_ARGS: ""
script:
- arch -${ARCHARCH} /bin/bash .gitlab/ci.sh
x86_64-windows:
extends: .build
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"
tags:
- new-x86_64-windows
variables:
TARBALL_ARCHIVE_SUFFIX: x86_64-windows
TARBALL_EXT: zip
ADD_CABAL_ARGS: ""
retry: 2