Skip to content

Commit fbc454f

Browse files
committed
Allow newer QuickCheck, bump Haskell CI to GHC 9.10.1
CI for GHC 7 needs to be dropped as it is no longer supported by Haskell-CI.
1 parent 8ce1a13 commit fbc454f

3 files changed

Lines changed: 49 additions & 93 deletions

File tree

.github/workflows/haskell-ci.yml

Lines changed: 43 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -6,41 +6,50 @@
66
#
77
# haskell-ci regenerate
88
#
9-
# For more information, see https://github.com/haskell-CI/haskell-ci
9+
# For more information, see https://github.com/andreasabel/haskell-ci
1010
#
11-
# version: 0.18
11+
# version: 0.19.20240703
1212
#
13-
# REGENDATA ("0.18",["github","dlist.cabal"])
13+
# REGENDATA ("0.19.20240703",["github","dlist.cabal"])
1414
#
1515
name: Haskell-CI
1616
on:
17-
- push
18-
- pull_request
17+
push:
18+
branches:
19+
- master
20+
pull_request:
21+
branches:
22+
- master
1923
jobs:
2024
linux:
2125
name: Haskell-CI - Linux - ${{ matrix.compiler }}
2226
runs-on: ubuntu-20.04
2327
timeout-minutes:
2428
60
2529
container:
26-
image: buildpack-deps:bionic
30+
image: buildpack-deps:jammy
2731
continue-on-error: ${{ matrix.allow-failure }}
2832
strategy:
2933
matrix:
3034
include:
31-
- compiler: ghc-9.8.1
35+
- compiler: ghc-9.10.1
3236
compilerKind: ghc
33-
compilerVersion: 9.8.1
37+
compilerVersion: 9.10.1
3438
setup-method: ghcup
3539
allow-failure: false
36-
- compiler: ghc-9.6.2
40+
- compiler: ghc-9.8.2
3741
compilerKind: ghc
38-
compilerVersion: 9.6.2
42+
compilerVersion: 9.8.2
3943
setup-method: ghcup
4044
allow-failure: false
41-
- compiler: ghc-9.4.5
45+
- compiler: ghc-9.6.6
4246
compilerKind: ghc
43-
compilerVersion: 9.4.5
47+
compilerVersion: 9.6.6
48+
setup-method: ghcup
49+
allow-failure: false
50+
- compiler: ghc-9.4.8
51+
compilerKind: ghc
52+
compilerVersion: 9.4.8
4453
setup-method: ghcup
4554
allow-failure: false
4655
- compiler: ghc-9.2.8
@@ -61,79 +70,39 @@ jobs:
6170
- compiler: ghc-8.8.4
6271
compilerKind: ghc
6372
compilerVersion: 8.8.4
64-
setup-method: hvr-ppa
73+
setup-method: ghcup
6574
allow-failure: false
6675
- compiler: ghc-8.6.5
6776
compilerKind: ghc
6877
compilerVersion: 8.6.5
69-
setup-method: hvr-ppa
78+
setup-method: ghcup
7079
allow-failure: false
7180
- compiler: ghc-8.4.4
7281
compilerKind: ghc
7382
compilerVersion: 8.4.4
74-
setup-method: hvr-ppa
83+
setup-method: ghcup
7584
allow-failure: false
7685
- compiler: ghc-8.2.2
7786
compilerKind: ghc
7887
compilerVersion: 8.2.2
79-
setup-method: hvr-ppa
88+
setup-method: ghcup
8089
allow-failure: false
8190
- compiler: ghc-8.0.2
8291
compilerKind: ghc
8392
compilerVersion: 8.0.2
84-
setup-method: hvr-ppa
85-
allow-failure: false
86-
- compiler: ghc-7.10.3
87-
compilerKind: ghc
88-
compilerVersion: 7.10.3
89-
setup-method: hvr-ppa
90-
allow-failure: false
91-
- compiler: ghc-7.8.4
92-
compilerKind: ghc
93-
compilerVersion: 7.8.4
94-
setup-method: hvr-ppa
95-
allow-failure: false
96-
- compiler: ghc-7.6.3
97-
compilerKind: ghc
98-
compilerVersion: 7.6.3
99-
setup-method: hvr-ppa
100-
allow-failure: false
101-
- compiler: ghc-7.4.2
102-
compilerKind: ghc
103-
compilerVersion: 7.4.2
104-
setup-method: hvr-ppa
105-
allow-failure: false
106-
- compiler: ghc-7.2.2
107-
compilerKind: ghc
108-
compilerVersion: 7.2.2
109-
setup-method: hvr-ppa
110-
allow-failure: false
111-
- compiler: ghc-7.0.4
112-
compilerKind: ghc
113-
compilerVersion: 7.0.4
114-
setup-method: hvr-ppa
93+
setup-method: ghcup
11594
allow-failure: false
11695
fail-fast: false
11796
steps:
11897
- name: apt
11998
run: |
12099
apt-get update
121-
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
122-
if [ "${{ matrix.setup-method }}" = ghcup ]; then
123-
mkdir -p "$HOME/.ghcup/bin"
124-
curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
125-
chmod a+x "$HOME/.ghcup/bin/ghcup"
126-
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
127-
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
128-
else
129-
apt-add-repository -y 'ppa:hvr/ghc'
130-
apt-get update
131-
apt-get install -y "$HCNAME"
132-
mkdir -p "$HOME/.ghcup/bin"
133-
curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
134-
chmod a+x "$HOME/.ghcup/bin/ghcup"
135-
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
136-
fi
100+
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
101+
mkdir -p "$HOME/.ghcup/bin"
102+
curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
103+
chmod a+x "$HOME/.ghcup/bin/ghcup"
104+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
105+
"$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
137106
env:
138107
HCKIND: ${{ matrix.compilerKind }}
139108
HCNAME: ${{ matrix.compiler }}
@@ -145,22 +114,13 @@ jobs:
145114
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
146115
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
147116
HCDIR=/opt/$HCKIND/$HCVER
148-
if [ "${{ matrix.setup-method }}" = ghcup ]; then
149-
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
150-
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
151-
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
152-
echo "HC=$HC" >> "$GITHUB_ENV"
153-
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
154-
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
155-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
156-
else
157-
HC=$HCDIR/bin/$HCKIND
158-
echo "HC=$HC" >> "$GITHUB_ENV"
159-
echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
160-
echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
161-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
162-
fi
163-
117+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
118+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
119+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
120+
echo "HC=$HC" >> "$GITHUB_ENV"
121+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
122+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
123+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
164124
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
165125
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
166126
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
@@ -217,7 +177,7 @@ jobs:
217177
chmod a+x $HOME/.cabal/bin/cabal-plan
218178
cabal-plan --version
219179
- name: checkout
220-
uses: actions/checkout@v3
180+
uses: actions/checkout@v4
221181
with:
222182
path: source
223183
- name: initial cabal.project for sdist
@@ -245,15 +205,15 @@ jobs:
245205
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
246206
cat >> cabal.project <<EOF
247207
EOF
248-
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(dlist)$/; }' >> cabal.project.local
208+
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(dlist)$/; }' >> cabal.project.local
249209
cat cabal.project
250210
cat cabal.project.local
251211
- name: dump install plan
252212
run: |
253213
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
254214
cabal-plan
255215
- name: restore cache
256-
uses: actions/cache/restore@v3
216+
uses: actions/cache/restore@v4
257217
with:
258218
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
259219
path: ~/.cabal/store
@@ -283,7 +243,7 @@ jobs:
283243
rm -f cabal.project.local
284244
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
285245
- name: save cache
286-
uses: actions/cache/save@v3
246+
uses: actions/cache/save@v4
287247
if: always()
288248
with:
289249
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}

cabal.haskell-ci

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
branches: master

dlist.cabal

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,7 @@ extra-source-files: readme.md,
1717
changelog.md
1818
tests/ImportUnsafe.hs
1919
build-type: Simple
20-
tested-with: GHC==7.0.4
21-
GHC==7.2.2
22-
GHC==7.4.2
23-
GHC==7.6.3
24-
GHC==7.8.4
25-
GHC==7.10.3
26-
GHC==8.0.2
20+
tested-with: GHC==8.0.2
2721
GHC==8.2.2
2822
GHC==8.4.4
2923
GHC==8.6.5
@@ -32,8 +26,9 @@ tested-with: GHC==7.0.4
3226
GHC==9.0.2
3327
GHC==9.2.8
3428
GHC==9.4.8
35-
GHC==9.6.4
36-
GHC==9.8.1
29+
GHC==9.6.6
30+
GHC==9.8.2
31+
GHC==9.10.1
3732

3833
source-repository head
3934
type: git
@@ -86,7 +81,7 @@ test-suite test
8681
-- QuickCheck-2.10 is the first version supporting
8782
-- base-4.9 (ghc-8) without the Arbitrary NonEmpty
8883
-- instance, which we include ourselves.
89-
QuickCheck >= 2.10 && < 2.15
84+
QuickCheck >= 2.10 && < 3
9085
default-language: Haskell2010
9186
ghc-options: -Wall
9287
if impl(ghc >= 8.0)

0 commit comments

Comments
 (0)