8
8
#
9
9
# For more information, see https://github.com/haskell-CI/haskell-ci
10
10
#
11
- # version: 0.17.20240109
11
+ # version: 0.19.20241223
12
12
#
13
- # REGENDATA ("0.17.20240109 ",["github","cabal.project"])
13
+ # REGENDATA ("0.19.20241223 ",["github","cabal.project"])
14
14
#
15
15
name : Haskell-CI
16
16
on :
@@ -29,24 +29,29 @@ jobs:
29
29
timeout-minutes :
30
30
60
31
31
container :
32
- image : buildpack-deps:bionic
32
+ image : buildpack-deps:jammy
33
33
continue-on-error : ${{ matrix.allow-failure }}
34
34
strategy :
35
35
matrix :
36
36
include :
37
+ - compiler : ghc-9.12.1
38
+ compilerKind : ghc
39
+ compilerVersion : 9.12.1
40
+ setup-method : ghcup
41
+ allow-failure : false
37
42
- compiler : ghc-9.10.1
38
43
compilerKind : ghc
39
44
compilerVersion : 9.10.1
40
45
setup-method : ghcup
41
46
allow-failure : false
42
- - compiler : ghc-9.8.2
47
+ - compiler : ghc-9.8.4
43
48
compilerKind : ghc
44
- compilerVersion : 9.8.2
49
+ compilerVersion : 9.8.4
45
50
setup-method : ghcup
46
51
allow-failure : false
47
- - compiler : ghc-9.6.5
52
+ - compiler : ghc-9.6.6
48
53
compilerKind : ghc
49
- compilerVersion : 9.6.5
54
+ compilerVersion : 9.6.6
50
55
setup-method : ghcup
51
56
allow-failure : false
52
57
- compiler : ghc-9.4.8
@@ -72,81 +77,54 @@ jobs:
72
77
- compiler : ghc-8.8.4
73
78
compilerKind : ghc
74
79
compilerVersion : 8.8.4
75
- setup-method : hvr-ppa
80
+ setup-method : ghcup
76
81
allow-failure : false
77
82
- compiler : ghc-8.6.5
78
83
compilerKind : ghc
79
84
compilerVersion : 8.6.5
80
- setup-method : hvr-ppa
85
+ setup-method : ghcup
81
86
allow-failure : false
82
87
- compiler : ghc-8.4.4
83
88
compilerKind : ghc
84
89
compilerVersion : 8.4.4
85
- setup-method : hvr-ppa
90
+ setup-method : ghcup
86
91
allow-failure : false
87
92
- compiler : ghc-8.2.2
88
93
compilerKind : ghc
89
94
compilerVersion : 8.2.2
90
- setup-method : hvr-ppa
95
+ setup-method : ghcup
91
96
allow-failure : false
92
97
- compiler : ghc-8.0.2
93
98
compilerKind : ghc
94
99
compilerVersion : 8.0.2
95
- setup-method : hvr-ppa
96
- allow-failure : false
97
- - compiler : ghc-7.10.3
98
- compilerKind : ghc
99
- compilerVersion : 7.10.3
100
- setup-method : hvr-ppa
101
- allow-failure : false
102
- - compiler : ghc-7.8.4
103
- compilerKind : ghc
104
- compilerVersion : 7.8.4
105
- setup-method : hvr-ppa
106
- allow-failure : false
107
- - compiler : ghc-7.6.3
108
- compilerKind : ghc
109
- compilerVersion : 7.6.3
110
- setup-method : hvr-ppa
111
- allow-failure : false
112
- - compiler : ghc-7.4.2
113
- compilerKind : ghc
114
- compilerVersion : 7.4.2
115
- setup-method : hvr-ppa
116
- allow-failure : false
117
- - compiler : ghc-7.2.2
118
- compilerKind : ghc
119
- compilerVersion : 7.2.2
120
- setup-method : hvr-ppa
121
- allow-failure : false
122
- - compiler : ghc-7.0.4
123
- compilerKind : ghc
124
- compilerVersion : 7.0.4
125
- setup-method : hvr-ppa
100
+ setup-method : ghcup
126
101
allow-failure : false
127
102
fail-fast : false
128
103
steps :
129
- - name : apt
104
+ - name : apt-get install
130
105
run : |
131
106
apt-get update
132
- apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
133
- if [ "${{ matrix.setup-method }}" = ghcup ]; then
134
- mkdir -p "$HOME/.ghcup/bin"
135
- curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
136
- chmod a+x "$HOME/.ghcup/bin/ghcup"
137
- "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
138
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
139
- apt-get update
140
- apt-get install -y libxml2-dev
141
- else
142
- apt-add-repository -y 'ppa:hvr/ghc'
143
- apt-get update
144
- apt-get install -y "$HCNAME" libxml2-dev
145
- mkdir -p "$HOME/.ghcup/bin"
146
- curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
147
- chmod a+x "$HOME/.ghcup/bin/ghcup"
148
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
149
- fi
107
+ apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
108
+ apt-get install -y libxml2-dev
109
+ - name : Install GHCup
110
+ run : |
111
+ mkdir -p "$HOME/.ghcup/bin"
112
+ curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
113
+ chmod a+x "$HOME/.ghcup/bin/ghcup"
114
+ - name : Install cabal-install
115
+ run : |
116
+ "$HOME/.ghcup/bin/ghcup" install cabal 3.14.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
117
+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
118
+ - name : Install GHC (GHCup)
119
+ if : matrix.setup-method == 'ghcup'
120
+ run : |
121
+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
122
+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
123
+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
124
+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
125
+ echo "HC=$HC" >> "$GITHUB_ENV"
126
+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
127
+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
150
128
env :
151
129
HCKIND : ${{ matrix.compilerKind }}
152
130
HCNAME : ${{ matrix.compiler }}
@@ -157,30 +135,12 @@ jobs:
157
135
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
158
136
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
159
137
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
160
- HCDIR=/opt/$HCKIND/$HCVER
161
- if [ "${{ matrix.setup-method }}" = ghcup ]; then
162
- HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
163
- HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
164
- HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
165
- echo "HC=$HC" >> "$GITHUB_ENV"
166
- echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
167
- echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
168
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
169
- else
170
- HC=$HCDIR/bin/$HCKIND
171
- echo "HC=$HC" >> "$GITHUB_ENV"
172
- echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
173
- echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
174
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
175
- fi
176
-
177
138
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
178
139
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
179
140
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
180
141
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
181
142
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
182
143
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
183
- echo "GHCJSARITH=0" >> "$GITHUB_ENV"
184
144
env :
185
145
HCKIND : ${{ matrix.compilerKind }}
186
146
HCNAME : ${{ matrix.compiler }}
@@ -230,7 +190,7 @@ jobs:
230
190
chmod a+x $HOME/.cabal/bin/cabal-plan
231
191
cabal-plan --version
232
192
- name : checkout
233
- uses : actions/checkout@v3
193
+ uses : actions/checkout@v4
234
194
with :
235
195
path : source
236
196
- name : initial cabal.project for sdist
@@ -278,15 +238,15 @@ jobs:
278
238
package libxml
279
239
extra-include-dirs: /usr/include/libxml2
280
240
EOF
281
- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(test-framework|test-framework-example|test-framework-hunit|test-framework-quickcheck2)$/; }' >> cabal.project.local
241
+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(test-framework|test-framework-example|test-framework-hunit|test-framework-quickcheck2)$/; }' >> cabal.project.local
282
242
cat cabal.project
283
243
cat cabal.project.local
284
244
- name : dump install plan
285
245
run : |
286
246
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
287
247
cabal-plan
288
248
- name : restore cache
289
- uses : actions/cache/restore@v3
249
+ uses : actions/cache/restore@v4
290
250
with :
291
251
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
292
252
path : ~/.cabal/store
@@ -322,8 +282,8 @@ jobs:
322
282
rm -f cabal.project.local
323
283
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
324
284
- name : save cache
325
- uses : actions/cache/save@v3
326
285
if : always()
286
+ uses : actions/cache/save@v4
327
287
with :
328
288
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
329
289
path : ~/.cabal/store
0 commit comments