8
8
#
9
9
# For more information, see https://github.com/haskell-CI/haskell-ci
10
10
#
11
- # version: 0.18.1
11
+ # version: 0.19.20250605
12
12
#
13
- # REGENDATA ("0.18.1 ",["github","bzlib.cabal"])
13
+ # REGENDATA ("0.19.20250605 ",["github","bzlib.cabal"])
14
14
#
15
15
name : Haskell-CI
16
16
on :
19
19
jobs :
20
20
linux :
21
21
name : Haskell-CI - Linux - ${{ matrix.compiler }}
22
- runs-on : ubuntu-20 .04
22
+ runs-on : ubuntu-24 .04
23
23
timeout-minutes :
24
24
60
25
25
container :
26
- image : buildpack-deps:bionic
26
+ image : buildpack-deps:jammy
27
27
continue-on-error : ${{ matrix.allow-failure }}
28
28
strategy :
29
29
matrix :
30
30
include :
31
- - compiler : ghc-9.8 .2
31
+ - compiler : ghc-9.12 .2
32
32
compilerKind : ghc
33
- compilerVersion : 9.8 .2
33
+ compilerVersion : 9.12 .2
34
34
setup-method : ghcup
35
35
allow-failure : false
36
- - compiler : ghc-9.6.4
36
+ - compiler : ghc-9.10.2
37
37
compilerKind : ghc
38
- compilerVersion : 9.6.4
38
+ compilerVersion : 9.10.2
39
+ setup-method : ghcup
40
+ allow-failure : false
41
+ - compiler : ghc-9.8.4
42
+ compilerKind : ghc
43
+ compilerVersion : 9.8.4
44
+ setup-method : ghcup
45
+ allow-failure : false
46
+ - compiler : ghc-9.6.7
47
+ compilerKind : ghc
48
+ compilerVersion : 9.6.7
39
49
setup-method : ghcup
40
50
allow-failure : false
41
51
- compiler : ghc-9.4.8
@@ -61,79 +71,53 @@ jobs:
61
71
- compiler : ghc-8.8.4
62
72
compilerKind : ghc
63
73
compilerVersion : 8.8.4
64
- setup-method : hvr-ppa
74
+ setup-method : ghcup
65
75
allow-failure : false
66
76
- compiler : ghc-8.6.5
67
77
compilerKind : ghc
68
78
compilerVersion : 8.6.5
69
- setup-method : hvr-ppa
79
+ setup-method : ghcup
70
80
allow-failure : false
71
81
- compiler : ghc-8.4.4
72
82
compilerKind : ghc
73
83
compilerVersion : 8.4.4
74
- setup-method : hvr-ppa
84
+ setup-method : ghcup
75
85
allow-failure : false
76
86
- compiler : ghc-8.2.2
77
87
compilerKind : ghc
78
88
compilerVersion : 8.2.2
79
- setup-method : hvr-ppa
89
+ setup-method : ghcup
80
90
allow-failure : false
81
91
- compiler : ghc-8.0.2
82
92
compilerKind : ghc
83
93
compilerVersion : 8.0.2
84
- setup-method : hvr-ppa
85
- allow-failure : false
86
- - compiler : ghc-7.10.3
87
- compilerKind : ghc
88
- compilerVersion : 7.10.3
89
- setup-method : hvr-ppa
90
- allow-failure : false
91
- - compiler : ghc-7.8.4
92
- compilerKind : ghc
93
- compilerVersion : 7.8.4
94
- setup-method : hvr-ppa
95
- allow-failure : false
96
- - compiler : ghc-7.6.3
97
- compilerKind : ghc
98
- compilerVersion : 7.6.3
99
- setup-method : hvr-ppa
100
- allow-failure : false
101
- - compiler : ghc-7.4.2
102
- compilerKind : ghc
103
- compilerVersion : 7.4.2
104
- setup-method : hvr-ppa
105
- allow-failure : false
106
- - compiler : ghc-7.2.2
107
- compilerKind : ghc
108
- compilerVersion : 7.2.2
109
- setup-method : hvr-ppa
110
- allow-failure : false
111
- - compiler : ghc-7.0.4
112
- compilerKind : ghc
113
- compilerVersion : 7.0.4
114
- setup-method : hvr-ppa
94
+ setup-method : ghcup
115
95
allow-failure : false
116
96
fail-fast : false
117
97
steps :
118
- - name : apt
98
+ - name : apt-get install
119
99
run : |
120
100
apt-get update
121
- apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
122
- if [ "${{ matrix.setup-method }}" = ghcup ]; then
123
- mkdir -p "$HOME/.ghcup/bin"
124
- curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
125
- chmod a+x "$HOME/.ghcup/bin/ghcup"
126
- "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
127
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
128
- else
129
- apt-add-repository -y 'ppa:hvr/ghc'
130
- apt-get update
131
- apt-get install -y "$HCNAME"
132
- mkdir -p "$HOME/.ghcup/bin"
133
- curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
134
- chmod a+x "$HOME/.ghcup/bin/ghcup"
135
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
136
- fi
101
+ apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
102
+ - name : Install GHCup
103
+ run : |
104
+ mkdir -p "$HOME/.ghcup/bin"
105
+ curl -sL https://downloads.haskell.org/ghcup/0.1.50.1/x86_64-linux-ghcup-0.1.50.1 > "$HOME/.ghcup/bin/ghcup"
106
+ chmod a+x "$HOME/.ghcup/bin/ghcup"
107
+ - name : Install cabal-install
108
+ run : |
109
+ "$HOME/.ghcup/bin/ghcup" install cabal 3.14.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
110
+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
111
+ - name : Install GHC (GHCup)
112
+ if : matrix.setup-method == 'ghcup'
113
+ run : |
114
+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
115
+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
116
+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
117
+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
118
+ echo "HC=$HC" >> "$GITHUB_ENV"
119
+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
120
+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
137
121
env :
138
122
HCKIND : ${{ matrix.compilerKind }}
139
123
HCNAME : ${{ matrix.compiler }}
@@ -144,30 +128,12 @@ jobs:
144
128
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
145
129
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
146
130
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
147
- HCDIR=/opt/$HCKIND/$HCVER
148
- if [ "${{ matrix.setup-method }}" = ghcup ]; then
149
- HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
150
- HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
151
- HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
152
- echo "HC=$HC" >> "$GITHUB_ENV"
153
- echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
154
- echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
155
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
156
- else
157
- HC=$HCDIR/bin/$HCKIND
158
- echo "HC=$HC" >> "$GITHUB_ENV"
159
- echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
160
- echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
161
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
162
- fi
163
-
164
131
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
165
132
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
166
133
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
167
134
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
168
135
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
169
136
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
170
- echo "GHCJSARITH=0" >> "$GITHUB_ENV"
171
137
env :
172
138
HCKIND : ${{ matrix.compilerKind }}
173
139
HCNAME : ${{ matrix.compiler }}
@@ -217,7 +183,7 @@ jobs:
217
183
chmod a+x $HOME/.cabal/bin/cabal-plan
218
184
cabal-plan --version
219
185
- name : checkout
220
- uses : actions/checkout@v3
186
+ uses : actions/checkout@v4
221
187
with :
222
188
path : source
223
189
- name : initial cabal.project for sdist
@@ -245,15 +211,15 @@ jobs:
245
211
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
246
212
cat >> cabal.project <<EOF
247
213
EOF
248
- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(bzlib)$/; }' >> cabal.project.local
214
+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(bzlib)$/; }' >> cabal.project.local
249
215
cat cabal.project
250
216
cat cabal.project.local
251
217
- name : dump install plan
252
218
run : |
253
219
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
254
220
cabal-plan
255
221
- name : restore cache
256
- uses : actions/cache/restore@v3
222
+ uses : actions/cache/restore@v4
257
223
with :
258
224
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
259
225
path : ~/.cabal/store
@@ -283,8 +249,8 @@ jobs:
283
249
rm -f cabal.project.local
284
250
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
285
251
- name : save cache
286
- uses : actions/cache/save@v3
287
252
if : always()
253
+ uses : actions/cache/save@v4
288
254
with :
289
255
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
290
256
path : ~/.cabal/store
0 commit comments