Skip to content

Commit feeaa1f

Browse files
authored
Allow GHC-9.2 dependencies (#39)
* Allow GHC-9.2 dependencies * Update haskell-ci
1 parent 85c368e commit feeaa1f

File tree

2 files changed

+88
-34
lines changed

2 files changed

+88
-34
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 81 additions & 28 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.1
11+
# version: 0.14
1212
#
13-
# REGENDATA ("0.12.1",["github","cabal.project"])
13+
# REGENDATA ("0.14",["github","cabal.project"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -24,55 +24,101 @@ jobs:
2424
linux:
2525
name: Haskell-CI - Linux - ${{ matrix.compiler }}
2626
runs-on: ubuntu-18.04
27+
timeout-minutes:
28+
60
2729
container:
28-
image: buildpack-deps:bionic
30+
image: buildpack-deps:focal
2931
continue-on-error: ${{ matrix.allow-failure }}
3032
strategy:
3133
matrix:
3234
include:
33-
- compiler: ghc-9.0.1
35+
- compiler: ghc-9.2.1
36+
compilerKind: ghc
37+
compilerVersion: 9.2.1
38+
setup-method: ghcup
3439
allow-failure: true
35-
- compiler: ghc-8.10.4
40+
- compiler: ghc-9.0.2
41+
compilerKind: ghc
42+
compilerVersion: 9.0.2
43+
setup-method: ghcup
44+
allow-failure: false
45+
- compiler: ghc-8.10.7
46+
compilerKind: ghc
47+
compilerVersion: 8.10.7
48+
setup-method: ghcup
3649
allow-failure: false
3750
- compiler: ghc-8.8.4
51+
compilerKind: ghc
52+
compilerVersion: 8.8.4
53+
setup-method: hvr-ppa
3854
allow-failure: false
3955
- compiler: ghc-8.6.5
56+
compilerKind: ghc
57+
compilerVersion: 8.6.5
58+
setup-method: hvr-ppa
4059
allow-failure: false
4160
- compiler: ghc-8.4.4
61+
compilerKind: ghc
62+
compilerVersion: 8.4.4
63+
setup-method: hvr-ppa
4264
allow-failure: false
4365
fail-fast: false
4466
steps:
4567
- name: apt
4668
run: |
4769
apt-get update
48-
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common
49-
apt-add-repository -y 'ppa:hvr/ghc'
50-
apt-get update
51-
apt-get install -y $CC cabal-install-3.4
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.17.3/x86_64-linux-ghcup-0.1.17.3 > "$HOME/.ghcup/bin/ghcup"
74+
chmod a+x "$HOME/.ghcup/bin/ghcup"
75+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER"
76+
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0
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.17.3/x86_64-linux-ghcup-0.1.17.3 > "$HOME/.ghcup/bin/ghcup"
83+
chmod a+x "$HOME/.ghcup/bin/ghcup"
84+
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0
85+
fi
5286
env:
53-
CC: ${{ matrix.compiler }}
87+
HCKIND: ${{ matrix.compilerKind }}
88+
HCNAME: ${{ matrix.compiler }}
89+
HCVER: ${{ matrix.compilerVersion }}
5490
- name: Set PATH and environment variables
5591
run: |
5692
echo "$HOME/.cabal/bin" >> $GITHUB_PATH
57-
echo "LANG=C.UTF-8" >> $GITHUB_ENV
58-
echo "CABAL_DIR=$HOME/.cabal" >> $GITHUB_ENV
59-
echo "CABAL_CONFIG=$HOME/.cabal/config" >> $GITHUB_ENV
60-
HCDIR=$(echo "/opt/$CC" | sed 's/-/\//')
61-
HCNAME=ghc
62-
HC=$HCDIR/bin/$HCNAME
63-
echo "HC=$HC" >> $GITHUB_ENV
64-
echo "HCPKG=$HCDIR/bin/$HCNAME-pkg" >> $GITHUB_ENV
65-
echo "HADDOCK=$HCDIR/bin/haddock" >> $GITHUB_ENV
66-
echo "CABAL=/opt/cabal/3.4/bin/cabal -vnormal+nowrap" >> $GITHUB_ENV
93+
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
94+
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
95+
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
96+
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.6.2.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.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
109+
fi
110+
67111
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
68-
echo "HCNUMVER=$HCNUMVER" >> $GITHUB_ENV
69-
echo "ARG_TESTS=--enable-tests" >> $GITHUB_ENV
70-
echo "ARG_BENCH=--enable-benchmarks" >> $GITHUB_ENV
71-
echo "HEADHACKAGE=false" >> $GITHUB_ENV
72-
echo "ARG_COMPILER=--$HCNAME --with-compiler=$HC" >> $GITHUB_ENV
73-
echo "GHCJSARITH=0" >> $GITHUB_ENV
112+
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
113+
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
114+
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
115+
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
116+
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
117+
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
74118
env:
75-
CC: ${{ matrix.compiler }}
119+
HCKIND: ${{ matrix.compilerKind }}
120+
HCNAME: ${{ matrix.compiler }}
121+
HCVER: ${{ matrix.compilerVersion }}
76122
- name: env
77123
run: |
78124
env
@@ -95,6 +141,10 @@ jobs:
95141
repository hackage.haskell.org
96142
url: http://hackage.haskell.org/
97143
EOF
144+
cat >> $CABAL_CONFIG <<EOF
145+
program-default-options
146+
ghc-options: $GHCJOBS +RTS -M3G -RTS
147+
EOF
98148
cat $CABAL_CONFIG
99149
- name: versions
100150
run: |
@@ -133,7 +183,8 @@ jobs:
133183
- name: generate cabal.project
134184
run: |
135185
PKGDIR_openapi3="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/openapi3-[0-9.]*')"
136-
echo "PKGDIR_openapi3=${PKGDIR_openapi3}" >> $GITHUB_ENV
186+
echo "PKGDIR_openapi3=${PKGDIR_openapi3}" >> "$GITHUB_ENV"
187+
rm -f cabal.project cabal.project.local
137188
touch cabal.project
138189
touch cabal.project.local
139190
echo "packages: ${PKGDIR_openapi3}" >> cabal.project
@@ -184,7 +235,9 @@ jobs:
184235
rm -f cabal.project.local
185236
- name: constraint set aeson-2
186237
run: |
238+
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='aeson >=2.0' --dependencies-only -j2 all
187239
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='aeson >=2.0' all
188240
- name: constraint set aeson-1
189241
run: |
242+
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='aeson <2.0' --dependencies-only -j2 all
190243
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='aeson <2.0' all

openapi3.cabal

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ tested-with:
2626
GHC ==8.4.4
2727
|| ==8.6.5
2828
|| ==8.8.4
29-
|| ==8.10.4
30-
|| ==9.0.1
29+
|| ==8.10.7
30+
|| ==9.0.2
31+
|| ==9.2.1
3132

3233
custom-setup
3334
setup-depends:
@@ -60,11 +61,11 @@ library
6061

6162
-- GHC boot libraries
6263
build-depends:
63-
base >=4.11.1.0 && <4.16
64-
, bytestring >=0.10.8.2 && <0.11
64+
base >=4.11.1.0 && <4.17
65+
, bytestring >=0.10.8.2 && <0.12
6566
, containers >=0.5.11.0 && <0.7
66-
, template-haskell >=2.13.0.0 && <2.18
67-
, time >=1.8.0.2 && <1.10
67+
, template-haskell >=2.13.0.0 && <2.19
68+
, time >=1.8.0.2 && <1.14
6869
, transformers >=0.5.5.0 && <0.6
6970

7071
build-depends:

0 commit comments

Comments
 (0)