8
8
#
9
9
# For more information, see https://github.com/haskell-CI/haskell-ci
10
10
#
11
- # version: 0.17.20231004
11
+ # version: 0.19.20240708
12
12
#
13
- # REGENDATA ("0.17.20231004 ",["github","cabal.project"])
13
+ # REGENDATA ("0.19.20240708 ",["github","cabal.project"])
14
14
#
15
15
name : Haskell-CI
16
16
on :
@@ -27,19 +27,29 @@ jobs:
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.6.3
35
+ - compiler : ghc-9.10.1
36
36
compilerKind : ghc
37
- compilerVersion : 9.6.3
37
+ compilerVersion : 9.10.1
38
38
setup-method : ghcup
39
39
allow-failure : false
40
- - compiler : ghc-9.4.7
40
+ - compiler : ghc-9.8.2
41
41
compilerKind : ghc
42
- compilerVersion : 9.4.7
42
+ compilerVersion : 9.8.2
43
+ setup-method : ghcup
44
+ allow-failure : false
45
+ - compiler : ghc-9.6.6
46
+ compilerKind : ghc
47
+ compilerVersion : 9.6.6
48
+ setup-method : ghcup
49
+ allow-failure : false
50
+ - compiler : ghc-9.4.8
51
+ compilerKind : ghc
52
+ compilerVersion : 9.4.8
43
53
setup-method : ghcup
44
54
allow-failure : false
45
55
- compiler : ghc-9.2.8
@@ -64,11 +74,10 @@ jobs:
64
74
apt-get update
65
75
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
66
76
mkdir -p "$HOME/.ghcup/bin"
67
- curl -sL https://downloads.haskell.org/ghcup/0.1.19.5 /x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
77
+ curl -sL https://downloads.haskell.org/ghcup/0.1.30.0 /x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
68
78
chmod a+x "$HOME/.ghcup/bin/ghcup"
69
- "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml;
70
79
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
71
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10 .1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
80
+ "$HOME/.ghcup/bin/ghcup" install cabal 3.12 .1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
72
81
env :
73
82
HCKIND : ${{ matrix.compilerKind }}
74
83
HCNAME : ${{ matrix.compiler }}
86
95
echo "HC=$HC" >> "$GITHUB_ENV"
87
96
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
88
97
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
89
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10 .1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
98
+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.12 .1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
90
99
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
91
100
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
92
101
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
@@ -134,9 +143,9 @@ jobs:
134
143
run : |
135
144
$CABAL v2-update -v
136
145
- name : cache (tools)
137
- uses : actions/cache/restore@v3
146
+ uses : actions/cache/restore@v4
138
147
with :
139
- key : ${{ runner.os }}-${{ matrix.compiler }}-tools-2bcd4d44
148
+ key : ${{ runner.os }}-${{ matrix.compiler }}-tools-655fd156
140
149
path : ~/.haskell-ci-tools
141
150
- name : install cabal-plan
142
151
run : |
@@ -149,22 +158,16 @@ jobs:
149
158
cabal-plan --version
150
159
- name : install doctest
151
160
run : |
152
- if [ $((HCNUMVER < 90400)) -ne 0 ] ; then $CABAL --store-dir=$HOME/.haskell-ci-tools/store v2-install $ARG_COMPILER --ignore-project -j2 doctest --constraint='doctest ^>=0.20' ; fi
153
- if [ $((HCNUMVER < 90400)) -ne 0 ] ; then doctest --version ; fi
154
- - name : install hlint
155
- run : |
156
- if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then HLINTVER=$(cd /tmp && (${CABAL} v2-install -v $ARG_COMPILER --dry-run hlint --constraint='hlint >=3.3 && <3.6' | perl -ne 'if (/\bhlint-(\d+(\.\d+)*)\b/) { print "$1"; last; }')); echo "HLint version $HLINTVER" ; fi
157
- if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then if [ ! -e $HOME/.haskell-ci-tools/hlint-$HLINTVER/hlint ]; then echo "Downloading HLint version $HLINTVER"; mkdir -p $HOME/.haskell-ci-tools; curl --write-out 'Status Code: %{http_code} Redirects: %{num_redirects} Total time: %{time_total} Total Dsize: %{size_download}\n' --silent --location --output $HOME/.haskell-ci-tools/hlint-$HLINTVER.tar.gz "https://github.com/ndmitchell/hlint/releases/download/v$HLINTVER/hlint-$HLINTVER-x86_64-linux.tar.gz"; tar -xzv -f $HOME/.haskell-ci-tools/hlint-$HLINTVER.tar.gz -C $HOME/.haskell-ci-tools; fi ; fi
158
- if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then mkdir -p $CABAL_DIR/bin && ln -sf "$HOME/.haskell-ci-tools/hlint-$HLINTVER/hlint" $CABAL_DIR/bin/hlint ; fi
159
- if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then hlint --version ; fi
161
+ if [ $((HCNUMVER < 91000)) -ne 0 ] ; then $CABAL --store-dir=$HOME/.haskell-ci-tools/store v2-install $ARG_COMPILER --ignore-project -j2 doctest --constraint='doctest ^>=0.22.0' ; fi
162
+ if [ $((HCNUMVER < 91000)) -ne 0 ] ; then doctest --version ; fi
160
163
- name : save cache (tools)
161
- uses : actions/cache/save@v3
164
+ uses : actions/cache/save@v4
162
165
if : always()
163
166
with :
164
- key : ${{ runner.os }}-${{ matrix.compiler }}-tools-2bcd4d44
167
+ key : ${{ runner.os }}-${{ matrix.compiler }}-tools-655fd156
165
168
path : ~/.haskell-ci-tools
166
169
- name : checkout
167
- uses : actions/checkout@v3
170
+ uses : actions/checkout@v4
168
171
with :
169
172
path : source
170
173
- name : initial cabal.project for sdist
@@ -192,15 +195,15 @@ jobs:
192
195
echo " ghc-options: -Werror=missing-methods" >> cabal.project
193
196
cat >> cabal.project <<EOF
194
197
EOF
195
- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(typed-process-effectful)$/; }' >> cabal.project.local
198
+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(typed-process-effectful)$/; }' >> cabal.project.local
196
199
cat cabal.project
197
200
cat cabal.project.local
198
201
- name : dump install plan
199
202
run : |
200
203
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
201
204
cabal-plan
202
205
- name : restore cache
203
- uses : actions/cache/restore@v3
206
+ uses : actions/cache/restore@v4
204
207
with :
205
208
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
206
209
path : ~/.cabal/store
@@ -220,11 +223,8 @@ jobs:
220
223
$CABAL v2-test $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --test-show-details=direct
221
224
- name : doctest
222
225
run : |
223
- if [ $((HCNUMVER < 90400)) -ne 0 ] ; then cd ${PKGDIR_typed_process_effectful} || false ; fi
224
- if [ $((HCNUMVER < 90400)) -ne 0 ] ; then doctest -XHaskell2010 -XDataKinds -XFlexibleContexts -XGADTs -XKindSignatures -XTypeOperators src ; fi
225
- - name : hlint
226
- run : |
227
- if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then (cd ${PKGDIR_typed_process_effectful} && hlint -XHaskell2010 -XDataKinds -XFlexibleContexts -XGADTs -XKindSignatures -XTypeOperators src) ; fi
226
+ if [ $((HCNUMVER < 91000)) -ne 0 ] ; then cd ${PKGDIR_typed_process_effectful} || false ; fi
227
+ if [ $((HCNUMVER < 91000)) -ne 0 ] ; then doctest -XHaskell2010 -XDataKinds -XFlexibleContexts -XGADTs -XKindSignatures -XTypeOperators src ; fi
228
228
- name : cabal check
229
229
run : |
230
230
cd ${PKGDIR_typed_process_effectful} || false
@@ -237,7 +237,7 @@ jobs:
237
237
rm -f cabal.project.local
238
238
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
239
239
- name : save cache
240
- uses : actions/cache/save@v3
240
+ uses : actions/cache/save@v4
241
241
if : always()
242
242
with :
243
243
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
0 commit comments