8
8
#
9
9
# For more information, see https://github.com/haskell-CI/haskell-ci
10
10
#
11
- # version: 0.16.6
11
+ # version: 0.19.20240702
12
12
#
13
- # REGENDATA ("0.16.6 ",["github","--config=cabal.haskell-ci","cabal.project"])
13
+ # REGENDATA ("0.19.20240702 ",["github","--config=cabal.haskell-ci","cabal.project"])
14
14
#
15
15
name : Haskell-CI
16
16
on :
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 :
@@ -60,29 +60,19 @@ jobs:
60
60
- compiler : ghc-8.8.4
61
61
compilerKind : ghc
62
62
compilerVersion : 8.8.4
63
- setup-method : hvr-ppa
63
+ setup-method : ghcup
64
64
allow-failure : false
65
65
fail-fast : false
66
66
steps :
67
67
- name : apt
68
68
run : |
69
69
apt-get update
70
70
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
71
- if [ "${{ matrix.setup-method }}" = ghcup ]; then
72
- mkdir -p "$HOME/.ghcup/bin"
73
- curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
74
- chmod a+x "$HOME/.ghcup/bin/ghcup"
75
- "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
76
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
77
- else
78
- apt-add-repository -y 'ppa:hvr/ghc'
79
- apt-get update
80
- apt-get install -y "$HCNAME"
81
- mkdir -p "$HOME/.ghcup/bin"
82
- curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
83
- chmod a+x "$HOME/.ghcup/bin/ghcup"
84
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
85
- fi
71
+ mkdir -p "$HOME/.ghcup/bin"
72
+ curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
73
+ chmod a+x "$HOME/.ghcup/bin/ghcup"
74
+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
75
+ "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
86
76
env :
87
77
HCKIND : ${{ matrix.compilerKind }}
88
78
HCNAME : ${{ matrix.compiler }}
@@ -94,20 +84,13 @@ jobs:
94
84
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
95
85
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
96
86
HCDIR=/opt/$HCKIND/$HCVER
97
- if [ "${{ matrix.setup-method }}" = ghcup ]; then
98
- HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
99
- echo "HC=$HC" >> "$GITHUB_ENV"
100
- echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
101
- echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
102
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
103
- else
104
- HC=$HCDIR/bin/$HCKIND
105
- echo "HC=$HC" >> "$GITHUB_ENV"
106
- echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
107
- echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
108
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
109
- fi
110
-
87
+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
88
+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
89
+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
90
+ echo "HC=$HC" >> "$GITHUB_ENV"
91
+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
92
+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
93
+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
111
94
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
112
95
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
113
96
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
@@ -164,7 +147,7 @@ jobs:
164
147
chmod a+x $HOME/.cabal/bin/cabal-plan
165
148
cabal-plan --version
166
149
- name : checkout
167
- uses : actions/checkout@v3
150
+ uses : actions/checkout@v4
168
151
with :
169
152
path : source
170
153
- name : initial cabal.project for sdist
@@ -216,15 +199,15 @@ jobs:
216
199
echo " ghc-options: -Werror=missing-methods" >> cabal.project
217
200
cat >> cabal.project <<EOF
218
201
EOF
219
- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(servant-swagger-ui|servant-swagger-ui-core|servant-swagger-ui-example|servant-swagger-ui-jensoleg|servant-swagger-ui-redoc)$/; }' >> cabal.project.local
202
+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(servant-swagger-ui|servant-swagger-ui-core|servant-swagger-ui-example|servant-swagger-ui-jensoleg|servant-swagger-ui-redoc)$/; }' >> cabal.project.local
220
203
cat cabal.project
221
204
cat cabal.project.local
222
205
- name : dump install plan
223
206
run : |
224
207
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
225
208
cabal-plan
226
209
- name : restore cache
227
- uses : actions/cache/restore@v3
210
+ uses : actions/cache/restore@v4
228
211
with :
229
212
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
230
213
path : ~/.cabal/store
@@ -292,7 +275,7 @@ jobs:
292
275
if [ $((HCNUMVER < 81000)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.16.*' --dependencies-only -j2 all ; fi
293
276
if [ $((HCNUMVER < 81000)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.16.*' all ; fi
294
277
- name : save cache
295
- uses : actions/cache/save@v3
278
+ uses : actions/cache/save@v4
296
279
if : always()
297
280
with :
298
281
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
0 commit comments