git.iko.soy/typeable/html-parse
on master help sign in
Add GHC 9.2, 9.4 to tested-with
commiteb5002aec2203045bdfdd61af767fe7974378884 authorBen Gamari <ben@smart-cactus.org> dateMon 29 Aug 2022, 12:47 (4 years ago) parentd340bc6
3 files changed+202−29
.github/workflows/haskell-ci.yml+181−28 gen_entities.py+20 html-parse.cabal+1−1
.github/workflows/haskell-ci.yml+181−28
@@ -8,9 +8,9 @@
88#
99# For more information, see https://github.com/haskell-CI/haskell-ci
1010#
11−# version: 0.12.1
11+# version: 0.15.20220812
1212#
13−# REGENDATA ("0.12.1",["github","html-parse.cabal"])
13+# REGENDATA ("0.15.20220812",["github","html-parse.cabal"])
1414#
1515name: Haskell-CI
1616on:
@@ -19,94 +19,242 @@ on:
1919jobs:
2020 linux:
2121 name: Haskell-CI - Linux - ${{ matrix.compiler }}
22− runs-on: ubuntu-18.04
22+ runs-on: ubuntu-20.04
23+ timeout-minutes:
24+ 60
2325 container:
24− image: buildpack-deps:xenial
26+ image: buildpack-deps:bionic
2527 continue-on-error: ${{ matrix.allow-failure }}
2628 strategy:
2729 matrix:
2830 include:
31+ - compiler: ghc-9.4.1
32+ compilerKind: ghc
33+ compilerVersion: 9.4.1
34+ setup-method: ghcup
35+ allow-failure: false
36+ - compiler: ghc-9.2.4
37+ compilerKind: ghc
38+ compilerVersion: 9.2.4
39+ setup-method: ghcup
40+ allow-failure: false
41+ - compiler: ghc-9.2.3
42+ compilerKind: ghc
43+ compilerVersion: 9.2.3
44+ setup-method: ghcup
45+ allow-failure: false
46+ - compiler: ghc-9.2.2
47+ compilerKind: ghc
48+ compilerVersion: 9.2.2
49+ setup-method: ghcup
50+ allow-failure: false
51+ - compiler: ghc-9.2.1
52+ compilerKind: ghc
53+ compilerVersion: 9.2.1
54+ setup-method: ghcup
55+ allow-failure: false
56+ - compiler: ghc-9.0.2
57+ compilerKind: ghc
58+ compilerVersion: 9.0.2
59+ setup-method: ghcup
60+ allow-failure: false
61+ - compiler: ghc-9.0.1
62+ compilerKind: ghc
63+ compilerVersion: 9.0.1
64+ setup-method: hvr-ppa
65+ allow-failure: false
66+ - compiler: ghc-8.10.7
67+ compilerKind: ghc
68+ compilerVersion: 8.10.7
69+ setup-method: ghcup
70+ allow-failure: false
71+ - compiler: ghc-8.10.6
72+ compilerKind: ghc
73+ compilerVersion: 8.10.6
74+ setup-method: ghcup
75+ allow-failure: false
76+ - compiler: ghc-8.10.5
77+ compilerKind: ghc
78+ compilerVersion: 8.10.5
79+ setup-method: ghcup
80+ allow-failure: false
2981 - compiler: ghc-8.10.4
82+ compilerKind: ghc
83+ compilerVersion: 8.10.4
84+ setup-method: hvr-ppa
3085 allow-failure: false
3186 - compiler: ghc-8.10.3
87+ compilerKind: ghc
88+ compilerVersion: 8.10.3
89+ setup-method: hvr-ppa
3290 allow-failure: false
3391 - compiler: ghc-8.10.2
92+ compilerKind: ghc
93+ compilerVersion: 8.10.2
94+ setup-method: hvr-ppa
3495 allow-failure: false
3596 - compiler: ghc-8.10.1
97+ compilerKind: ghc
98+ compilerVersion: 8.10.1
99+ setup-method: hvr-ppa
36100 allow-failure: false
37101 - compiler: ghc-8.8.4
102+ compilerKind: ghc
103+ compilerVersion: 8.8.4
104+ setup-method: hvr-ppa
38105 allow-failure: false
39106 - compiler: ghc-8.8.3
107+ compilerKind: ghc
108+ compilerVersion: 8.8.3
109+ setup-method: hvr-ppa
40110 allow-failure: false
41111 - compiler: ghc-8.8.2
112+ compilerKind: ghc
113+ compilerVersion: 8.8.2
114+ setup-method: hvr-ppa
42115 allow-failure: false
43116 - compiler: ghc-8.8.1
117+ compilerKind: ghc
118+ compilerVersion: 8.8.1
119+ setup-method: hvr-ppa
44120 allow-failure: false
45121 - compiler: ghc-8.6.5
122+ compilerKind: ghc
123+ compilerVersion: 8.6.5
124+ setup-method: hvr-ppa
46125 allow-failure: false
47126 - compiler: ghc-8.6.4
127+ compilerKind: ghc
128+ compilerVersion: 8.6.4
129+ setup-method: hvr-ppa
48130 allow-failure: false
49131 - compiler: ghc-8.6.3
132+ compilerKind: ghc
133+ compilerVersion: 8.6.3
134+ setup-method: hvr-ppa
50135 allow-failure: false
51136 - compiler: ghc-8.6.2
137+ compilerKind: ghc
138+ compilerVersion: 8.6.2
139+ setup-method: hvr-ppa
52140 allow-failure: false
53141 - compiler: ghc-8.6.1
142+ compilerKind: ghc
143+ compilerVersion: 8.6.1
144+ setup-method: hvr-ppa
54145 allow-failure: false
55146 - compiler: ghc-8.4.4
147+ compilerKind: ghc
148+ compilerVersion: 8.4.4
149+ setup-method: hvr-ppa
56150 allow-failure: false
57151 - compiler: ghc-8.4.3
152+ compilerKind: ghc
153+ compilerVersion: 8.4.3
154+ setup-method: hvr-ppa
58155 allow-failure: false
59156 - compiler: ghc-8.4.2
157+ compilerKind: ghc
158+ compilerVersion: 8.4.2
159+ setup-method: hvr-ppa
60160 allow-failure: false
61161 - compiler: ghc-8.4.1
162+ compilerKind: ghc
163+ compilerVersion: 8.4.1
164+ setup-method: hvr-ppa
62165 allow-failure: false
63166 - compiler: ghc-8.2.2
167+ compilerKind: ghc
168+ compilerVersion: 8.2.2
169+ setup-method: hvr-ppa
64170 allow-failure: false
65171 - compiler: ghc-8.2.1
172+ compilerKind: ghc
173+ compilerVersion: 8.2.1
174+ setup-method: hvr-ppa
66175 allow-failure: false
67176 - compiler: ghc-8.0.2
177+ compilerKind: ghc
178+ compilerVersion: 8.0.2
179+ setup-method: hvr-ppa
68180 allow-failure: false
69181 - compiler: ghc-8.0.1
182+ compilerKind: ghc
183+ compilerVersion: 8.0.1
184+ setup-method: hvr-ppa
70185 allow-failure: false
71186 - compiler: ghc-7.10.3
187+ compilerKind: ghc
188+ compilerVersion: 7.10.3
189+ setup-method: hvr-ppa
72190 allow-failure: false
73191 - compiler: ghc-7.10.2
192+ compilerKind: ghc
193+ compilerVersion: 7.10.2
194+ setup-method: hvr-ppa
74195 allow-failure: false
75196 - compiler: ghc-7.10.1
197+ compilerKind: ghc
198+ compilerVersion: 7.10.1
199+ setup-method: hvr-ppa
76200 allow-failure: false
77201 fail-fast: false
78202 steps:
79203 - name: apt
80204 run: |
81205 apt-get update
82− apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common
83− apt-add-repository -y 'ppa:hvr/ghc'
84− apt-get update
85− apt-get install -y $CC cabal-install-3.4
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)
213+ else
214+ apt-add-repository -y 'ppa:hvr/ghc'
215+ apt-get update
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)
221+ fi
86222 env:
87− CC: ${{ matrix.compiler }}
223+ HCKIND: ${{ matrix.compilerKind }}
224+ HCNAME: ${{ matrix.compiler }}
225+ HCVER: ${{ matrix.compilerVersion }}
88226 - name: Set PATH and environment variables
89227 run: |
90228 echo "$HOME/.cabal/bin" >> $GITHUB_PATH
91− echo "LANG=C.UTF-8" >> $GITHUB_ENV
92− echo "CABAL_DIR=$HOME/.cabal" >> $GITHUB_ENV
93− echo "CABAL_CONFIG=$HOME/.cabal/config" >> $GITHUB_ENV
94− HCDIR=$(echo "/opt/$CC" | sed 's/-/\//')
95− HCNAME=ghc
96− HC=$HCDIR/bin/$HCNAME
97− echo "HC=$HC" >> $GITHUB_ENV
98− echo "HCPKG=$HCDIR/bin/$HCNAME-pkg" >> $GITHUB_ENV
99− echo "HADDOCK=$HCDIR/bin/haddock" >> $GITHUB_ENV
100− echo "CABAL=/opt/cabal/3.4/bin/cabal -vnormal+nowrap" >> $GITHUB_ENV
229+ echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
230+ echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
231+ echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
232+ HCDIR=/opt/$HCKIND/$HCVER
233+ if [ "${{ matrix.setup-method }}" = ghcup ]; then
234+ HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
235+ echo "HC=$HC" >> "$GITHUB_ENV"
236+ echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$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"
239+ else
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"
244+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
245+ fi
246+
101247 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
103− echo "ARG_TESTS=--enable-tests" >> $GITHUB_ENV
104− echo "ARG_BENCH=--enable-benchmarks" >> $GITHUB_ENV
105− echo "HEADHACKAGE=false" >> $GITHUB_ENV
106− echo "ARG_COMPILER=--$HCNAME --with-compiler=$HC" >> $GITHUB_ENV
107− echo "GHCJSARITH=0" >> $GITHUB_ENV
248+ echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
249+ echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
250+ echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
251+ echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
252+ echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
253+ echo "GHCJSARITH=0" >> "$GITHUB_ENV"
108254 env:
109− CC: ${{ matrix.compiler }}
255+ HCKIND: ${{ matrix.compilerKind }}
256+ HCNAME: ${{ matrix.compiler }}
257+ HCVER: ${{ matrix.compilerVersion }}
110258 - name: env
111259 run: |
112260 env
@@ -129,6 +277,10 @@ jobs:
129277 repository hackage.haskell.org
130278 url: http://hackage.haskell.org/
131279 EOF
280+ cat >> $CABAL_CONFIG <<EOF
281+ program-default-options
282+ ghc-options: $GHCJOBS +RTS -M3G -RTS
283+ EOF
132284 cat $CABAL_CONFIG
133285 - name: versions
134286 run: |
@@ -167,7 +319,8 @@ jobs:
167319 - name: generate cabal.project
168320 run: |
169321 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
171324 touch cabal.project
172325 touch cabal.project.local
173326 echo "packages: ${PKGDIR_html_parse}" >> cabal.project
@@ -207,7 +360,7 @@ jobs:
207360 ${CABAL} -vnormal check
208361 - name: haddock
209362 run: |
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
211364 - name: unconstrained build
212365 run: |
213366 rm -f cabal.project.local
gen_entities.pynew file+20
@@ -0,0 +1,20 @@
1+#!/usr/bin/env python3
2+
3+import sys
4+import json
5+
6+# expects entity summary from https://html.spec.whatwg.org/entities.json
7+entities = json.load(sys.stdin)
8+
9+def escape(s):
10+ return s.replace('"', '\\"')
11+
12+print('module Text.HTML.Parser.Entities (entities) where')
13+print('')
14+print('entities :: [(String, String)]')
15+print('entities = [')
16+print(',\n'.join(
17+ f''' ("{name[1:-1]}", "{escape(details['characters'])}")'''
18+ for name, details in entities.items()
19+))
20+print(' ]')
html-parse.cabal+1−1
@@ -52,7 +52,7 @@ copyright: (c) 2016 Ben Gamari
5252category: Text
5353build-type: Simple
5454cabal-version: >=1.10
55−tested-with: GHC==7.10.* GHC==8.0.*, GHC==8.2.*, GHC==8.4.*, GHC==8.6.*, GHC==8.8.*, GHC==8.10.*
55+tested-with: GHC==7.10.* GHC==8.0.*, GHC==8.2.*, GHC==8.4.*, GHC==8.6.*, GHC==8.8.*, GHC==8.10.*, GHC==9.0.*, GHC==9.2.*, GHC==9.4.*
5656
5757
5858source-repository head