8
8
#
9
9
# For more information, see https://github.com/haskell-CI/haskell-ci
10
10
#
11
- # version: 0.14.3
11
+ # version: 0.19.20240708
12
12
#
13
- # REGENDATA ("0.14.3 ",["github","ixset-typed.cabal"])
13
+ # REGENDATA ("0.19.20240708 ",["github","ixset-typed.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-18 .04
22
+ runs-on : ubuntu-20 .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.2.2
31
+ - compiler : ghc-9.2.8
32
32
compilerKind : ghc
33
- compilerVersion : 9.2.2
33
+ compilerVersion : 9.2.8
34
34
setup-method : ghcup
35
35
allow-failure : false
36
36
- compiler : ghc-9.0.2
@@ -46,49 +46,39 @@ jobs:
46
46
- compiler : ghc-8.8.4
47
47
compilerKind : ghc
48
48
compilerVersion : 8.8.4
49
- setup-method : hvr-ppa
49
+ setup-method : ghcup
50
50
allow-failure : false
51
51
- compiler : ghc-8.6.5
52
52
compilerKind : ghc
53
53
compilerVersion : 8.6.5
54
- setup-method : hvr-ppa
54
+ setup-method : ghcup
55
55
allow-failure : false
56
56
- compiler : ghc-8.4.4
57
57
compilerKind : ghc
58
58
compilerVersion : 8.4.4
59
- setup-method : hvr-ppa
59
+ setup-method : ghcup
60
60
allow-failure : false
61
61
- compiler : ghc-8.2.2
62
62
compilerKind : ghc
63
63
compilerVersion : 8.2.2
64
- setup-method : hvr-ppa
64
+ setup-method : ghcup
65
65
allow-failure : false
66
66
- compiler : ghc-8.0.2
67
67
compilerKind : ghc
68
68
compilerVersion : 8.0.2
69
- setup-method : hvr-ppa
69
+ setup-method : ghcup
70
70
allow-failure : false
71
71
fail-fast : false
72
72
steps :
73
73
- name : apt
74
74
run : |
75
75
apt-get update
76
- apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
77
- if [ "${{ matrix.setup-method }}" = ghcup ]; then
78
- mkdir -p "$HOME/.ghcup/bin"
79
- curl -sL https://downloads.haskell.org/ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5 > "$HOME/.ghcup/bin/ghcup"
80
- chmod a+x "$HOME/.ghcup/bin/ghcup"
81
- "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER"
82
- "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0
83
- else
84
- apt-add-repository -y 'ppa:hvr/ghc'
85
- apt-get update
86
- apt-get install -y "$HCNAME"
87
- mkdir -p "$HOME/.ghcup/bin"
88
- curl -sL https://downloads.haskell.org/ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5 > "$HOME/.ghcup/bin/ghcup"
89
- chmod a+x "$HOME/.ghcup/bin/ghcup"
90
- "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0
91
- fi
76
+ apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
77
+ mkdir -p "$HOME/.ghcup/bin"
78
+ curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
79
+ chmod a+x "$HOME/.ghcup/bin/ghcup"
80
+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
81
+ "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
92
82
env :
93
83
HCKIND : ${{ matrix.compilerKind }}
94
84
HCNAME : ${{ matrix.compiler }}
@@ -100,20 +90,13 @@ jobs:
100
90
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
101
91
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
102
92
HCDIR=/opt/$HCKIND/$HCVER
103
- if [ "${{ matrix.setup-method }}" = ghcup ]; then
104
- HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
105
- echo "HC=$HC" >> "$GITHUB_ENV"
106
- echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
107
- echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
108
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
109
- else
110
- HC=$HCDIR/bin/$HCKIND
111
- echo "HC=$HC" >> "$GITHUB_ENV"
112
- echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
113
- echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
114
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
115
- fi
116
-
93
+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
94
+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
95
+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
96
+ echo "HC=$HC" >> "$GITHUB_ENV"
97
+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
98
+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
99
+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
117
100
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
118
101
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
119
102
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
@@ -163,14 +146,14 @@ jobs:
163
146
- name : install cabal-plan
164
147
run : |
165
148
mkdir -p $HOME/.cabal/bin
166
- curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2 .0/cabal-plan-0.6.2 .0-x86_64-linux.xz > cabal-plan.xz
167
- echo 'de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc cabal-plan.xz' | sha256sum -c -
149
+ curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.7.3 .0/cabal-plan-0.7.3 .0-x86_64-linux.xz > cabal-plan.xz
150
+ echo 'f62ccb2971567a5f638f2005ad3173dba14693a45154c1508645c52289714cb2 cabal-plan.xz' | sha256sum -c -
168
151
xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
169
152
rm -f cabal-plan.xz
170
153
chmod a+x $HOME/.cabal/bin/cabal-plan
171
154
cabal-plan --version
172
155
- name : checkout
173
- uses : actions/checkout@v2
156
+ uses : actions/checkout@v4
174
157
with :
175
158
path : source
176
159
- name : initial cabal.project for sdist
@@ -198,15 +181,15 @@ jobs:
198
181
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
199
182
cat >> cabal.project <<EOF
200
183
EOF
201
- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(ixset-typed)$/; }' >> cabal.project.local
184
+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(ixset-typed)$/; }' >> cabal.project.local
202
185
cat cabal.project
203
186
cat cabal.project.local
204
187
- name : dump install plan
205
188
run : |
206
189
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
207
190
cabal-plan
208
- - name : cache
209
- uses : actions/cache@v2
191
+ - name : restore cache
192
+ uses : actions/cache/restore@v4
210
193
with :
211
194
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
212
195
path : ~/.cabal/store
@@ -230,8 +213,14 @@ jobs:
230
213
${CABAL} -vnormal check
231
214
- name : haddock
232
215
run : |
233
- $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
216
+ $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
234
217
- name : unconstrained build
235
218
run : |
236
219
rm -f cabal.project.local
237
220
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
221
+ - name : save cache
222
+ uses : actions/cache/save@v4
223
+ if : always()
224
+ with :
225
+ key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
226
+ path : ~/.cabal/store
0 commit comments