@@ -8,9 +8,9 @@
9# For more information, see https://github.com/haskell-CI/haskell-ci
9# For more information, see https://github.com/haskell-CI/haskell-ci
11−# version: 0.12.1
11+# version: 0.15.20220812
13−# REGENDATA ("0.12.1",["github","html-parse.cabal"])
13+# REGENDATA ("0.15.20220812",["github","html-parse.cabal"])
15name: Haskell-CI
15name: Haskell-CI
@@ -19,94 +19,242 @@ on:
21 name: Haskell-CI - Linux - ${{ matrix.compiler }}
21 name: Haskell-CI - Linux - ${{ matrix.compiler }}
22− runs-on: ubuntu-18.04
22+ runs-on: ubuntu-20.04
23 container:
25 container:
24− image: buildpack-deps:xenial
26+ image: buildpack-deps:bionic
25 continue-on-error: ${{ matrix.allow-failure }}
27 continue-on-error: ${{ matrix.allow-failure }}
31+ - compiler: ghc-9.4.1
33+ compilerVersion: 9.4.1
36+ - compiler: ghc-9.2.4
38+ compilerVersion: 9.2.4
41+ - compiler: ghc-9.2.3
43+ compilerVersion: 9.2.3
46+ - compiler: ghc-9.2.2
48+ compilerVersion: 9.2.2
51+ - compiler: ghc-9.2.1
53+ compilerVersion: 9.2.1
56+ - compiler: ghc-9.0.2
58+ compilerVersion: 9.0.2
61+ - compiler: ghc-9.0.1
63+ compilerVersion: 9.0.1
64+ setup-method: hvr-ppa
66+ - compiler: ghc-8.10.7
68+ compilerVersion: 8.10.7
71+ - compiler: ghc-8.10.6
73+ compilerVersion: 8.10.6
76+ - compiler: ghc-8.10.5
78+ compilerVersion: 8.10.5
29 - compiler: ghc-8.10.4
81 - compiler: ghc-8.10.4
83+ compilerVersion: 8.10.4
84+ setup-method: hvr-ppa
30 allow-failure: false
85 allow-failure: false
31 - compiler: ghc-8.10.3
86 - compiler: ghc-8.10.3
88+ compilerVersion: 8.10.3
89+ setup-method: hvr-ppa
32 allow-failure: false
90 allow-failure: false
33 - compiler: ghc-8.10.2
91 - compiler: ghc-8.10.2
93+ compilerVersion: 8.10.2
94+ setup-method: hvr-ppa
34 allow-failure: false
95 allow-failure: false
35 - compiler: ghc-8.10.1
96 - compiler: ghc-8.10.1
98+ compilerVersion: 8.10.1
99+ setup-method: hvr-ppa
36 allow-failure: false
100 allow-failure: false
37 - compiler: ghc-8.8.4
101 - compiler: ghc-8.8.4
103+ compilerVersion: 8.8.4
104+ setup-method: hvr-ppa
38 allow-failure: false
105 allow-failure: false
39 - compiler: ghc-8.8.3
106 - compiler: ghc-8.8.3
108+ compilerVersion: 8.8.3
109+ setup-method: hvr-ppa
40 allow-failure: false
110 allow-failure: false
41 - compiler: ghc-8.8.2
111 - compiler: ghc-8.8.2
113+ compilerVersion: 8.8.2
114+ setup-method: hvr-ppa
42 allow-failure: false
115 allow-failure: false
43 - compiler: ghc-8.8.1
116 - compiler: ghc-8.8.1
118+ compilerVersion: 8.8.1
119+ setup-method: hvr-ppa
44 allow-failure: false
120 allow-failure: false
45 - compiler: ghc-8.6.5
121 - compiler: ghc-8.6.5
123+ compilerVersion: 8.6.5
124+ setup-method: hvr-ppa
46 allow-failure: false
125 allow-failure: false
47 - compiler: ghc-8.6.4
126 - compiler: ghc-8.6.4
128+ compilerVersion: 8.6.4
129+ setup-method: hvr-ppa
48 allow-failure: false
130 allow-failure: false
49 - compiler: ghc-8.6.3
131 - compiler: ghc-8.6.3
133+ compilerVersion: 8.6.3
134+ setup-method: hvr-ppa
50 allow-failure: false
135 allow-failure: false
51 - compiler: ghc-8.6.2
136 - compiler: ghc-8.6.2
138+ compilerVersion: 8.6.2
139+ setup-method: hvr-ppa
52 allow-failure: false
140 allow-failure: false
53 - compiler: ghc-8.6.1
141 - compiler: ghc-8.6.1
143+ compilerVersion: 8.6.1
144+ setup-method: hvr-ppa
54 allow-failure: false
145 allow-failure: false
55 - compiler: ghc-8.4.4
146 - compiler: ghc-8.4.4
148+ compilerVersion: 8.4.4
149+ setup-method: hvr-ppa
56 allow-failure: false
150 allow-failure: false
57 - compiler: ghc-8.4.3
151 - compiler: ghc-8.4.3
153+ compilerVersion: 8.4.3
154+ setup-method: hvr-ppa
58 allow-failure: false
155 allow-failure: false
59 - compiler: ghc-8.4.2
156 - compiler: ghc-8.4.2
158+ compilerVersion: 8.4.2
159+ setup-method: hvr-ppa
60 allow-failure: false
160 allow-failure: false
61 - compiler: ghc-8.4.1
161 - compiler: ghc-8.4.1
163+ compilerVersion: 8.4.1
164+ setup-method: hvr-ppa
62 allow-failure: false
165 allow-failure: false
63 - compiler: ghc-8.2.2
166 - compiler: ghc-8.2.2
168+ compilerVersion: 8.2.2
169+ setup-method: hvr-ppa
64 allow-failure: false
170 allow-failure: false
65 - compiler: ghc-8.2.1
171 - compiler: ghc-8.2.1
173+ compilerVersion: 8.2.1
174+ setup-method: hvr-ppa
66 allow-failure: false
175 allow-failure: false
67 - compiler: ghc-8.0.2
176 - compiler: ghc-8.0.2
178+ compilerVersion: 8.0.2
179+ setup-method: hvr-ppa
68 allow-failure: false
180 allow-failure: false
69 - compiler: ghc-8.0.1
181 - compiler: ghc-8.0.1
183+ compilerVersion: 8.0.1
184+ setup-method: hvr-ppa
70 allow-failure: false
185 allow-failure: false
71 - compiler: ghc-7.10.3
186 - compiler: ghc-7.10.3
188+ compilerVersion: 7.10.3
189+ setup-method: hvr-ppa
72 allow-failure: false
190 allow-failure: false
73 - compiler: ghc-7.10.2
191 - compiler: ghc-7.10.2
193+ compilerVersion: 7.10.2
194+ setup-method: hvr-ppa
74 allow-failure: false
195 allow-failure: false
75 - compiler: ghc-7.10.1
196 - compiler: ghc-7.10.1
198+ compilerVersion: 7.10.1
199+ setup-method: hvr-ppa
76 allow-failure: false
200 allow-failure: false
77 fail-fast: false
201 fail-fast: false
79 - name: apt
203 - name: apt
81 apt-get update
205 apt-get update
82− apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common
206+ apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
207+ if [ "${{ matrix.setup-method }}" = ghcup ]; then
208+ mkdir -p "$HOME/.ghcup/bin"
209+ curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
210+ chmod a+x "$HOME/.ghcup/bin/ghcup"
211+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
212+ "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
83− apt-add-repository -y 'ppa:hvr/ghc'
214+ apt-add-repository -y 'ppa:hvr/ghc'
84− apt-get update
215+ apt-get update
85− apt-get install -y $CC cabal-install-3.4
216+ apt-get install -y "$HCNAME"
217+ mkdir -p "$HOME/.ghcup/bin"
218+ curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
219+ chmod a+x "$HOME/.ghcup/bin/ghcup"
220+ "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
223+ HCKIND: ${{ matrix.compilerKind }}
87− CC: ${{ matrix.compiler }}
224+ HCNAME: ${{ matrix.compiler }}
225+ HCVER: ${{ matrix.compilerVersion }}
88 - name: Set PATH and environment variables
226 - name: Set PATH and environment variables
90 echo "$HOME/.cabal/bin" >> $GITHUB_PATH
228 echo "$HOME/.cabal/bin" >> $GITHUB_PATH
91− echo "LANG=C.UTF-8" >> $GITHUB_ENV
229+ echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
92− echo "CABAL_DIR=$HOME/.cabal" >> $GITHUB_ENV
230+ echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
93− echo "CABAL_CONFIG=$HOME/.cabal/config" >> $GITHUB_ENV
231+ echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
94− HCDIR=$(echo "/opt/$CC" | sed 's/-/\//')
232+ HCDIR=/opt/$HCKIND/$HCVER
95− HCNAME=ghc
233+ if [ "${{ matrix.setup-method }}" = ghcup ]; then
96− HC=$HCDIR/bin/$HCNAME
234+ HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
97− echo "HC=$HC" >> $GITHUB_ENV
235+ echo "HC=$HC" >> "$GITHUB_ENV"
98− echo "HCPKG=$HCDIR/bin/$HCNAME-pkg" >> $GITHUB_ENV
236+ echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
99− echo "HADDOCK=$HCDIR/bin/haddock" >> $GITHUB_ENV
237+ echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
238+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
240+ HC=$HCDIR/bin/$HCKIND
241+ echo "HC=$HC" >> "$GITHUB_ENV"
242+ echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
243+ echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
100− echo "CABAL=/opt/cabal/3.4/bin/cabal -vnormal+nowrap" >> $GITHUB_ENV
244+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
101 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
247 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
102− echo "HCNUMVER=$HCNUMVER" >> $GITHUB_ENV
248+ echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
103− echo "ARG_TESTS=--enable-tests" >> $GITHUB_ENV
249+ echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
104− echo "ARG_BENCH=--enable-benchmarks" >> $GITHUB_ENV
250+ echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
105− echo "HEADHACKAGE=false" >> $GITHUB_ENV
251+ echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
106− echo "ARG_COMPILER=--$HCNAME --with-compiler=$HC" >> $GITHUB_ENV
252+ echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
107− echo "GHCJSARITH=0" >> $GITHUB_ENV
253+ echo "GHCJSARITH=0" >> "$GITHUB_ENV"
255+ HCKIND: ${{ matrix.compilerKind }}
109− CC: ${{ matrix.compiler }}
256+ HCNAME: ${{ matrix.compiler }}
257+ HCVER: ${{ matrix.compilerVersion }}
110 - name: env
258 - name: env
@@ -129,6 +277,10 @@ jobs:
129 repository hackage.haskell.org
277 repository hackage.haskell.org
130 url: http://hackage.haskell.org/
278 url: http://hackage.haskell.org/
280+ cat >> $CABAL_CONFIG <<EOF
281+ program-default-options
282+ ghc-options: $GHCJOBS +RTS -M3G -RTS
132 cat $CABAL_CONFIG
284 cat $CABAL_CONFIG
133 - name: versions
285 - name: versions
@@ -167,7 +319,8 @@ jobs:
167 - name: generate cabal.project
319 - name: generate cabal.project
169 PKGDIR_html_parse="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/html-parse-[0-9.]*')"
321 PKGDIR_html_parse="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/html-parse-[0-9.]*')"
170− echo "PKGDIR_html_parse=${PKGDIR_html_parse}" >> $GITHUB_ENV
322+ echo "PKGDIR_html_parse=${PKGDIR_html_parse}" >> "$GITHUB_ENV"
323+ rm -f cabal.project cabal.project.local
171 touch cabal.project
324 touch cabal.project
172 touch cabal.project.local
325 touch cabal.project.local
173 echo "packages: ${PKGDIR_html_parse}" >> cabal.project
326 echo "packages: ${PKGDIR_html_parse}" >> cabal.project
@@ -207,7 +360,7 @@ jobs:
207 ${CABAL} -vnormal check
360 ${CABAL} -vnormal check
208 - name: haddock
361 - name: haddock
210− $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
363+ $CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
211 - name: unconstrained build
364 - name: unconstrained build
213 rm -f cabal.project.local
366 rm -f cabal.project.local