1
1
# This GitHub workflow config has been generated by a script via
2
2
#
3
- # haskell-ci 'github' 'cabal.project '
3
+ # haskell-ci 'github' 'unordered-containers.cabal '
4
4
#
5
5
# To regenerate the script (for example after adjusting tested-with) run
6
6
#
7
7
# haskell-ci regenerate
8
8
#
9
9
# For more information, see https://github.com/haskell-CI/haskell-ci
10
10
#
11
- # version: 0.17.20231010
11
+ # version: 0.19.20250506
12
12
#
13
- # REGENDATA ("0.17.20231010 ",["github","cabal.project "])
13
+ # REGENDATA ("0.19.20250506 ",["github","unordered-containers.cabal "])
14
14
#
15
15
name : Haskell-CI
16
16
on :
23
23
jobs :
24
24
linux :
25
25
name : Haskell-CI - Linux - ${{ matrix.compiler }}
26
- runs-on : ubuntu-20 .04
26
+ runs-on : ubuntu-24 .04
27
27
timeout-minutes :
28
28
60
29
29
container :
30
- image : buildpack-deps:bionic
30
+ image : buildpack-deps:jammy
31
31
continue-on-error : ${{ matrix.allow-failure }}
32
32
strategy :
33
33
matrix :
34
34
include :
35
- - compiler : ghc-9.8.1
35
+ - compiler : ghc-9.12.2
36
36
compilerKind : ghc
37
- compilerVersion : 9.8.1
37
+ compilerVersion : 9.12.2
38
38
setup-method : ghcup
39
39
allow-failure : false
40
- - compiler : ghc-9.6.3
40
+ - compiler : ghc-9.10.2
41
41
compilerKind : ghc
42
- compilerVersion : 9.6.3
42
+ compilerVersion : 9.10.2
43
43
setup-method : ghcup
44
44
allow-failure : false
45
- - compiler : ghc-9.4.7
45
+ - compiler : ghc-9.8.4
46
46
compilerKind : ghc
47
- compilerVersion : 9.4.7
47
+ compilerVersion : 9.8.4
48
+ setup-method : ghcup
49
+ allow-failure : false
50
+ - compiler : ghc-9.6.7
51
+ compilerKind : ghc
52
+ compilerVersion : 9.6.7
53
+ setup-method : ghcup
54
+ allow-failure : false
55
+ - compiler : ghc-9.4.8
56
+ compilerKind : ghc
57
+ compilerVersion : 9.4.8
48
58
setup-method : ghcup
49
59
allow-failure : false
50
60
- compiler : ghc-9.2.8
@@ -84,15 +94,29 @@ jobs:
84
94
allow-failure : false
85
95
fail-fast : false
86
96
steps :
87
- - name : apt
97
+ - name : apt-get install
88
98
run : |
89
99
apt-get update
90
100
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
101
+ - name : Install GHCup
102
+ run : |
91
103
mkdir -p "$HOME/.ghcup/bin"
92
- curl -sL https://downloads.haskell.org/ghcup/0.1.19.5 /x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
104
+ curl -sL https://downloads.haskell.org/ghcup/0.1.50.1 /x86_64-linux-ghcup-0.1.50.1 > "$HOME/.ghcup/bin/ghcup"
93
105
chmod a+x "$HOME/.ghcup/bin/ghcup"
106
+ - name : Install cabal-install
107
+ run : |
108
+ "$HOME/.ghcup/bin/ghcup" install cabal 3.14.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
109
+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
110
+ - name : Install GHC (GHCup)
111
+ if : matrix.setup-method == 'ghcup'
112
+ run : |
94
113
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
95
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
114
+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
115
+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
116
+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
117
+ echo "HC=$HC" >> "$GITHUB_ENV"
118
+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
119
+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
96
120
env :
97
121
HCKIND : ${{ matrix.compilerKind }}
98
122
HCNAME : ${{ matrix.compiler }}
@@ -103,21 +127,12 @@ jobs:
103
127
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
104
128
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
105
129
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
106
- HCDIR=/opt/$HCKIND/$HCVER
107
- HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
108
- HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
109
- HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
110
- echo "HC=$HC" >> "$GITHUB_ENV"
111
- echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
112
- echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
113
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
114
130
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
115
131
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
116
132
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
117
133
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
118
134
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
119
135
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
120
- echo "GHCJSARITH=0" >> "$GITHUB_ENV"
121
136
env :
122
137
HCKIND : ${{ matrix.compilerKind }}
123
138
HCNAME : ${{ matrix.compiler }}
@@ -167,7 +182,7 @@ jobs:
167
182
chmod a+x $HOME/.cabal/bin/cabal-plan
168
183
cabal-plan --version
169
184
- name : checkout
170
- uses : actions/checkout@v3
185
+ uses : actions/checkout@v4
171
186
with :
172
187
path : source
173
188
- name : initial cabal.project for sdist
@@ -194,19 +209,16 @@ jobs:
194
209
echo "package unordered-containers" >> cabal.project
195
210
echo " ghc-options: -Werror=missing-methods" >> cabal.project
196
211
cat >> cabal.project <<EOF
197
- allow-newer: nothunks:bytestring
198
- allow-newer: nothunks:text
199
- allow-newer: ChasingBottoms:base
200
212
EOF
201
- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(binary|containers|unordered-containers)$/; }' >> cabal.project.local
213
+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(binary|containers|unordered-containers)$/; }' >> cabal.project.local
202
214
cat cabal.project
203
215
cat cabal.project.local
204
216
- name : dump install plan
205
217
run : |
206
218
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
207
219
cabal-plan
208
220
- name : restore cache
209
- uses : actions/cache/restore@v3
221
+ uses : actions/cache/restore@v4
210
222
with :
211
223
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
212
224
path : ~/.cabal/store
@@ -246,8 +258,8 @@ jobs:
246
258
$CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='unordered-containers +debug' all
247
259
$CABAL v2-test $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='unordered-containers +debug' all
248
260
- name : save cache
249
- uses : actions/cache/save@v3
250
261
if : always()
262
+ uses : actions/cache/save@v4
251
263
with :
252
264
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
253
265
path : ~/.cabal/store
0 commit comments