Skip to content

Commit e051a25

Browse files
authored
Allow servant 0.19 release series (#95)
1 parent 7217ca7 commit e051a25

File tree

7 files changed

+103
-68
lines changed

7 files changed

+103
-68
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 78 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
#
99
# For more information, see https://github.com/haskell-CI/haskell-ci
1010
#
11-
# version: 0.12
11+
# version: 0.14
1212
#
13-
# REGENDATA ("0.12",["github","--config=cabal.haskell-ci","cabal.project"])
13+
# REGENDATA ("0.14",["github","--config=cabal.haskell-ci","cabal.project"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -24,57 +24,86 @@ jobs:
2424
linux:
2525
name: Haskell-CI - Linux - ${{ matrix.compiler }}
2626
runs-on: ubuntu-18.04
27+
timeout-minutes:
28+
60
2729
container:
2830
image: buildpack-deps:bionic
2931
continue-on-error: ${{ matrix.allow-failure }}
3032
strategy:
3133
matrix:
3234
include:
33-
- compiler: ghc-9.0.1
34-
allow-failure: false
35-
- compiler: ghc-8.10.4
35+
- compiler: ghc-8.10.7
36+
compilerKind: ghc
37+
compilerVersion: 8.10.7
38+
setup-method: ghcup
3639
allow-failure: false
3740
- compiler: ghc-8.8.4
41+
compilerKind: ghc
42+
compilerVersion: 8.8.4
43+
setup-method: hvr-ppa
3844
allow-failure: false
3945
- compiler: ghc-8.6.5
40-
allow-failure: false
41-
- compiler: ghc-8.4.4
42-
allow-failure: false
43-
- compiler: ghc-8.2.2
46+
compilerKind: ghc
47+
compilerVersion: 8.6.5
48+
setup-method: hvr-ppa
4449
allow-failure: false
4550
fail-fast: false
4651
steps:
4752
- name: apt
4853
run: |
4954
apt-get update
50-
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common
51-
apt-add-repository -y 'ppa:hvr/ghc'
52-
apt-get update
53-
apt-get install -y $CC cabal-install-3.4
55+
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
56+
if [ "${{ matrix.setup-method }}" = ghcup ]; then
57+
mkdir -p "$HOME/.ghcup/bin"
58+
curl -sL https://downloads.haskell.org/ghcup/0.1.17.3/x86_64-linux-ghcup-0.1.17.3 > "$HOME/.ghcup/bin/ghcup"
59+
chmod a+x "$HOME/.ghcup/bin/ghcup"
60+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER"
61+
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0
62+
else
63+
apt-add-repository -y 'ppa:hvr/ghc'
64+
apt-get update
65+
apt-get install -y "$HCNAME"
66+
mkdir -p "$HOME/.ghcup/bin"
67+
curl -sL https://downloads.haskell.org/ghcup/0.1.17.3/x86_64-linux-ghcup-0.1.17.3 > "$HOME/.ghcup/bin/ghcup"
68+
chmod a+x "$HOME/.ghcup/bin/ghcup"
69+
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0
70+
fi
5471
env:
55-
CC: ${{ matrix.compiler }}
72+
HCKIND: ${{ matrix.compilerKind }}
73+
HCNAME: ${{ matrix.compiler }}
74+
HCVER: ${{ matrix.compilerVersion }}
5675
- name: Set PATH and environment variables
5776
run: |
5877
echo "$HOME/.cabal/bin" >> $GITHUB_PATH
59-
echo "LANG=C.UTF-8" >> $GITHUB_ENV
60-
echo "CABAL_DIR=$HOME/.cabal" >> $GITHUB_ENV
61-
echo "CABAL_CONFIG=$HOME/.cabal/config" >> $GITHUB_ENV
62-
HCDIR=$(echo "/opt/$CC" | sed 's/-/\//')
63-
HCNAME=ghc
64-
HC=$HCDIR/bin/$HCNAME
65-
echo "HC=$HC" >> $GITHUB_ENV
66-
echo "HCPKG=$HCDIR/bin/$HCNAME-pkg" >> $GITHUB_ENV
67-
echo "HADDOCK=$HCDIR/bin/haddock" >> $GITHUB_ENV
68-
echo "CABAL=/opt/cabal/3.4/bin/cabal -vnormal+nowrap" >> $GITHUB_ENV
78+
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
79+
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
80+
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
81+
HCDIR=/opt/$HCKIND/$HCVER
82+
if [ "${{ matrix.setup-method }}" = ghcup ]; then
83+
HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
84+
echo "HC=$HC" >> "$GITHUB_ENV"
85+
echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
86+
echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
87+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
88+
else
89+
HC=$HCDIR/bin/$HCKIND
90+
echo "HC=$HC" >> "$GITHUB_ENV"
91+
echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
92+
echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
93+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
94+
fi
95+
6996
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
70-
echo "HCNUMVER=$HCNUMVER" >> $GITHUB_ENV
71-
echo "ARG_TESTS=--enable-tests" >> $GITHUB_ENV
72-
echo "ARG_BENCH=--enable-benchmarks" >> $GITHUB_ENV
73-
echo "HEADHACKAGE=false" >> $GITHUB_ENV
74-
echo "ARG_COMPILER=--$HCNAME --with-compiler=$HC" >> $GITHUB_ENV
75-
echo "GHCJSARITH=0" >> $GITHUB_ENV
97+
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
98+
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
99+
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
100+
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
101+
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
102+
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
76103
env:
77-
CC: ${{ matrix.compiler }}
104+
HCKIND: ${{ matrix.compilerKind }}
105+
HCNAME: ${{ matrix.compiler }}
106+
HCVER: ${{ matrix.compilerVersion }}
78107
- name: env
79108
run: |
80109
env
@@ -97,6 +126,10 @@ jobs:
97126
repository hackage.haskell.org
98127
url: http://hackage.haskell.org/
99128
EOF
129+
cat >> $CABAL_CONFIG <<EOF
130+
program-default-options
131+
ghc-options: $GHCJOBS +RTS -M3G -RTS
132+
EOF
100133
cat $CABAL_CONFIG
101134
- name: versions
102135
run: |
@@ -139,15 +172,16 @@ jobs:
139172
- name: generate cabal.project
140173
run: |
141174
PKGDIR_servant_swagger_ui="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/servant-swagger-ui-[0-9.]*')"
142-
echo "PKGDIR_servant_swagger_ui=${PKGDIR_servant_swagger_ui}" >> $GITHUB_ENV
175+
echo "PKGDIR_servant_swagger_ui=${PKGDIR_servant_swagger_ui}" >> "$GITHUB_ENV"
143176
PKGDIR_servant_swagger_ui_core="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/servant-swagger-ui-core-[0-9.]*')"
144-
echo "PKGDIR_servant_swagger_ui_core=${PKGDIR_servant_swagger_ui_core}" >> $GITHUB_ENV
177+
echo "PKGDIR_servant_swagger_ui_core=${PKGDIR_servant_swagger_ui_core}" >> "$GITHUB_ENV"
145178
PKGDIR_servant_swagger_ui_example="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/servant-swagger-ui-example-[0-9.]*')"
146-
echo "PKGDIR_servant_swagger_ui_example=${PKGDIR_servant_swagger_ui_example}" >> $GITHUB_ENV
179+
echo "PKGDIR_servant_swagger_ui_example=${PKGDIR_servant_swagger_ui_example}" >> "$GITHUB_ENV"
147180
PKGDIR_servant_swagger_ui_jensoleg="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/servant-swagger-ui-jensoleg-[0-9.]*')"
148-
echo "PKGDIR_servant_swagger_ui_jensoleg=${PKGDIR_servant_swagger_ui_jensoleg}" >> $GITHUB_ENV
181+
echo "PKGDIR_servant_swagger_ui_jensoleg=${PKGDIR_servant_swagger_ui_jensoleg}" >> "$GITHUB_ENV"
149182
PKGDIR_servant_swagger_ui_redoc="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/servant-swagger-ui-redoc-[0-9.]*')"
150-
echo "PKGDIR_servant_swagger_ui_redoc=${PKGDIR_servant_swagger_ui_redoc}" >> $GITHUB_ENV
183+
echo "PKGDIR_servant_swagger_ui_redoc=${PKGDIR_servant_swagger_ui_redoc}" >> "$GITHUB_ENV"
184+
rm -f cabal.project cabal.project.local
151185
touch cabal.project
152186
touch cabal.project.local
153187
echo "packages: ${PKGDIR_servant_swagger_ui}" >> cabal.project
@@ -220,12 +254,19 @@ jobs:
220254
- name: prepare for constraint sets
221255
run: |
222256
rm -f cabal.project.local
257+
- name: constraint set servant-0.19
258+
run: |
259+
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.19.*' --dependencies-only -j2 all
260+
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.19.*' all
223261
- name: constraint set servant-0.18
224262
run: |
225-
if [ $((HCNUMVER >= 80600 && HCNUMVER < 90000)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.18.*' all ; fi
263+
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.18.*' --dependencies-only -j2 all
264+
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.18.*' all
226265
- name: constraint set servant-0.17
227266
run: |
267+
if [ $((HCNUMVER < 81000)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.17.*' --dependencies-only -j2 all ; fi
228268
if [ $((HCNUMVER < 81000)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.17.*' all ; fi
229269
- name: constraint set servant-0.16
230270
run: |
271+
if [ $((HCNUMVER < 81000)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.16.*' --dependencies-only -j2 all ; fi
231272
if [ $((HCNUMVER < 81000)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.16.*' all ; fi

cabal.haskell-ci

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,9 @@ constraint-set servant-0.17
99
constraints: servant ==0.17.*
1010

1111
constraint-set servant-0.18
12-
ghc: >= 8.6 && <9.0
12+
ghc: >= 8.6 && <9.4
1313
constraints: servant ==0.18.*
14+
15+
constraint-set servant-0.19
16+
ghc: >= 8.6 && <9.4
17+
constraints: servant ==0.19.*

servant-swagger-ui-core/servant-swagger-ui-core.cabal

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,9 @@ license: BSD3
1919
license-file: LICENSE
2020
build-type: Simple
2121
tested-with:
22-
GHC ==8.2.2
23-
|| ==8.4.4
24-
|| ==8.6.5
22+
GHC ==8.6.5
2523
|| ==8.8.4
26-
|| ==8.10.4
27-
|| ==9.0.1
24+
|| ==8.10.7
2825

2926
extra-source-files: Changelog.md
3027

@@ -41,9 +38,9 @@ library
4138
, blaze-markup >=0.7.0.2 && <0.9
4239
, bytestring >=0.10.4.0 && <0.11
4340
, http-media >=0.7.1.3 && <0.9
44-
, servant >=0.14 && <0.19
41+
, servant >=0.14 && <0.20
4542
, servant-blaze >=0.8 && <0.10
46-
, servant-server >=0.14 && <0.19
43+
, servant-server >=0.14 && <0.20
4744
, text >=1.2.3.0 && <1.3
4845
, transformers >=0.3 && <0.6
4946
, transformers-compat >=0.3 && <0.7

servant-swagger-ui-example/servant-swagger-ui-example.cabal

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,9 @@ license: BSD3
1414
license-file: LICENSE
1515
build-type: Simple
1616
tested-with:
17-
GHC ==8.2.2
18-
|| ==8.4.4
19-
|| ==8.6.5
17+
GHC ==8.6.5
2018
|| ==8.8.4
21-
|| ==8.10.4
22-
|| ==9.0.1
19+
|| ==8.10.7
2320

2421
source-repository head
2522
type: git
@@ -32,7 +29,7 @@ executable servant-swagger-ui-example
3229
aeson >=0.8.0.2 && <1.6
3330
, base >=4.7 && <4.16
3431
, base-compat >=0.9.3 && <0.12
35-
, lens >=4.7.0.1 && <5.1
32+
, lens >=4.7.0.1 && <5.2
3633
, servant
3734
, servant-server
3835
, servant-swagger

servant-swagger-ui-jensoleg/servant-swagger-ui-jensoleg.cabal

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,9 @@ license: BSD3
1818
license-file: LICENSE
1919
build-type: Simple
2020
tested-with:
21-
GHC ==8.2.2
22-
|| ==8.4.4
23-
|| ==8.6.5
21+
GHC ==8.6.5
2422
|| ==8.8.4
25-
|| ==8.10.4
26-
|| ==9.0.1
23+
|| ==8.10.7
2724

2825
extra-source-files:
2926
jensoleg.index.html.tmpl
@@ -89,8 +86,8 @@ library
8986
, aeson >=0.8.0.2 && <1.6
9087
, bytestring >=0.10.4.0 && <0.11
9188
, file-embed-lzma >=0 && <0.1
92-
, servant >=0.14 && <0.19
93-
, servant-server >=0.14 && <0.19
89+
, servant >=0.14 && <0.20
90+
, servant-server >=0.14 && <0.20
9491
, text >=1.2.3.0 && <1.3
9592

9693
exposed-modules: Servant.Swagger.UI.JensOleG

servant-swagger-ui-redoc/servant-swagger-ui-redoc.cabal

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ license: BSD3
1818
license-file: LICENSE
1919
build-type: Simple
2020
tested-with:
21-
GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.4 || ==9.0.1
21+
GHC ==8.6.5
22+
|| ==8.8.4
23+
|| ==8.10.7
2224

2325
extra-source-files:
2426
redoc-dist-1.22.3/redoc.min.js
@@ -38,8 +40,8 @@ library
3840
, aeson >=0.8.0.2 && <1.6
3941
, bytestring >=0.10.4.0 && <0.11
4042
, file-embed-lzma >=0 && <0.1
41-
, servant >=0.14 && <0.19
42-
, servant-server >=0.14 && <0.19
43+
, servant >=0.14 && <0.20
44+
, servant-server >=0.14 && <0.20
4345
, text >=1.2.3.0 && <1.3
4446

4547
exposed-modules: Servant.Swagger.UI.ReDoc

servant-swagger-ui/servant-swagger-ui.cabal

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,9 @@ license: BSD3
1818
license-file: LICENSE
1919
build-type: Simple
2020
tested-with:
21-
GHC ==8.2.2
22-
|| ==8.4.4
23-
|| ==8.6.5
21+
GHC ==8.6.5
2422
|| ==8.8.4
25-
|| ==8.10.4
26-
|| ==9.0.1
23+
|| ==8.10.7
2724

2825
extra-source-files:
2926
CHANGELOG.md
@@ -49,8 +46,8 @@ library
4946
, aeson >=0.8.0.2 && <1.6
5047
, bytestring >=0.10.4.0 && <0.11
5148
, file-embed-lzma >=0 && <0.1
52-
, servant >=0.14 && <0.19
53-
, servant-server >=0.14 && <0.19
49+
, servant >=0.14 && <0.20
50+
, servant-server >=0.14 && <0.20
5451
, text >=1.2.3.0 && <1.3
5552

5653
exposed-modules: Servant.Swagger.UI

0 commit comments

Comments
 (0)