Skip to content

Commit 1638fd1

Browse files
authored
Bump CI to GHC 9.12.2 (#23)
Update CI and test through GHC 9.12.
1 parent 4e8d504 commit 1638fd1

File tree

3 files changed

+68
-100
lines changed

3 files changed

+68
-100
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 50 additions & 95 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.17.20231203
11+
# version: 0.19.20250506
1212
#
13-
# REGENDATA ("0.17.20231203",["github","split.cabal"])
13+
# REGENDATA ("0.19.20250506",["github","split.cabal"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -19,23 +19,33 @@ on:
1919
jobs:
2020
linux:
2121
name: Haskell-CI - Linux - ${{ matrix.compiler }}
22-
runs-on: ubuntu-20.04
22+
runs-on: ubuntu-24.04
2323
timeout-minutes:
2424
60
2525
container:
26-
image: buildpack-deps:bionic
26+
image: buildpack-deps:jammy
2727
continue-on-error: ${{ matrix.allow-failure }}
2828
strategy:
2929
matrix:
3030
include:
31-
- compiler: ghc-9.8.1
31+
- compiler: ghc-9.12.2
3232
compilerKind: ghc
33-
compilerVersion: 9.8.1
33+
compilerVersion: 9.12.2
3434
setup-method: ghcup
3535
allow-failure: false
36-
- compiler: ghc-9.6.3
36+
- compiler: ghc-9.10.2
3737
compilerKind: ghc
38-
compilerVersion: 9.6.3
38+
compilerVersion: 9.10.2
39+
setup-method: ghcup
40+
allow-failure: false
41+
- compiler: ghc-9.8.4
42+
compilerKind: ghc
43+
compilerVersion: 9.8.4
44+
setup-method: ghcup
45+
allow-failure: false
46+
- compiler: ghc-9.6.7
47+
compilerKind: ghc
48+
compilerVersion: 9.6.7
3949
setup-method: ghcup
4050
allow-failure: false
4151
- compiler: ghc-9.4.8
@@ -61,79 +71,53 @@ jobs:
6171
- compiler: ghc-8.8.4
6272
compilerKind: ghc
6373
compilerVersion: 8.8.4
64-
setup-method: hvr-ppa
74+
setup-method: ghcup
6575
allow-failure: false
6676
- compiler: ghc-8.6.5
6777
compilerKind: ghc
6878
compilerVersion: 8.6.5
69-
setup-method: hvr-ppa
79+
setup-method: ghcup
7080
allow-failure: false
7181
- compiler: ghc-8.4.4
7282
compilerKind: ghc
7383
compilerVersion: 8.4.4
74-
setup-method: hvr-ppa
84+
setup-method: ghcup
7585
allow-failure: false
7686
- compiler: ghc-8.2.2
7787
compilerKind: ghc
7888
compilerVersion: 8.2.2
79-
setup-method: hvr-ppa
89+
setup-method: ghcup
8090
allow-failure: false
8191
- compiler: ghc-8.0.2
8292
compilerKind: ghc
8393
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
94+
setup-method: ghcup
11595
allow-failure: false
11696
fail-fast: false
11797
steps:
118-
- name: apt
98+
- name: apt-get install
11999
run: |
120100
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
101+
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
102+
- name: Install GHCup
103+
run: |
104+
mkdir -p "$HOME/.ghcup/bin"
105+
curl -sL https://downloads.haskell.org/ghcup/0.1.50.1/x86_64-linux-ghcup-0.1.50.1 > "$HOME/.ghcup/bin/ghcup"
106+
chmod a+x "$HOME/.ghcup/bin/ghcup"
107+
- name: Install cabal-install
108+
run: |
109+
"$HOME/.ghcup/bin/ghcup" install cabal 3.14.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
110+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
111+
- name: Install GHC (GHCup)
112+
if: matrix.setup-method == 'ghcup'
113+
run: |
114+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
115+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
116+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
117+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
118+
echo "HC=$HC" >> "$GITHUB_ENV"
119+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
120+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
137121
env:
138122
HCKIND: ${{ matrix.compilerKind }}
139123
HCNAME: ${{ matrix.compiler }}
@@ -144,30 +128,12 @@ jobs:
144128
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
145129
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
146130
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
147-
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-
164131
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
165132
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
166133
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
167134
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
168135
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
169136
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
170-
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
171137
env:
172138
HCKIND: ${{ matrix.compilerKind }}
173139
HCNAME: ${{ matrix.compiler }}
@@ -207,11 +173,6 @@ jobs:
207173
- name: update cabal index
208174
run: |
209175
$CABAL v2-update -v
210-
- name: cache (tools)
211-
uses: actions/cache/restore@v3
212-
with:
213-
key: ${{ runner.os }}-${{ matrix.compiler }}-tools-4b38b65d
214-
path: ~/.haskell-ci-tools
215176
- name: install cabal-plan
216177
run: |
217178
mkdir -p $HOME/.cabal/bin
@@ -224,20 +185,14 @@ jobs:
224185
- name: install cabal-docspec
225186
run: |
226187
mkdir -p $HOME/.cabal/bin
227-
curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20230517/cabal-docspec-0.0.0.20230517-x86_64-linux.xz > cabal-docspec.xz
228-
echo '3b31bbe463ad4d671abbc103db49628562ec48a6604cab278207b5b6acd21ed7 cabal-docspec.xz' | sha256sum -c -
188+
curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20240703/cabal-docspec-0.0.0.20240703-x86_64-linux.xz > cabal-docspec.xz
189+
echo '48bf3b7fd2f7f0caa6162afee57a755be8523e7f467b694900eb420f5f9a7b76 cabal-docspec.xz' | sha256sum -c -
229190
xz -d < cabal-docspec.xz > $HOME/.cabal/bin/cabal-docspec
230191
rm -f cabal-docspec.xz
231192
chmod a+x $HOME/.cabal/bin/cabal-docspec
232193
cabal-docspec --version
233-
- name: save cache (tools)
234-
uses: actions/cache/save@v3
235-
if: always()
236-
with:
237-
key: ${{ runner.os }}-${{ matrix.compiler }}-tools-4b38b65d
238-
path: ~/.haskell-ci-tools
239194
- name: checkout
240-
uses: actions/checkout@v3
195+
uses: actions/checkout@v4
241196
with:
242197
path: source
243198
- name: initial cabal.project for sdist
@@ -265,15 +220,15 @@ jobs:
265220
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
266221
cat >> cabal.project <<EOF
267222
EOF
268-
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(split)$/; }' >> cabal.project.local
223+
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(split)$/; }' >> cabal.project.local
269224
cat cabal.project
270225
cat cabal.project.local
271226
- name: dump install plan
272227
run: |
273228
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
274229
cabal-plan
275230
- name: restore cache
276-
uses: actions/cache/restore@v3
231+
uses: actions/cache/restore@v4
277232
with:
278233
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
279234
path: ~/.cabal/store
@@ -307,8 +262,8 @@ jobs:
307262
rm -f cabal.project.local
308263
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
309264
- name: save cache
310-
uses: actions/cache/save@v3
311265
if: always()
266+
uses: actions/cache/save@v4
312267
with:
313268
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
314269
path: ~/.cabal/store

cabal.haskell-ci

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ docspec: True
77
-- Build haddocks. Accepts booleans or version range.
88
haddock: True
99

10-
-- Run HLint
11-
hlint: True
12-
hlint-job: 9.4.5
13-
hlint-download-binary: True
10+
-- -- Run HLint
11+
-- hlint: True
12+
-- hlint-job: 9.4.5
13+
-- hlint-download-binary: True

split.cabal

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,20 @@ Maintainer: [email protected]
3535
Category: List
3636
Build-type: Simple
3737
Cabal-Version: >= 1.10
38-
Tested-with: GHC ==9.8.1 || ==9.6.3 || ==9.4.8 || ==9.2.8 || ==9.0.2 || ==8.10.7 || ==8.8.4 || ==8.6.5 || ==8.4.4 || ==8.2.2 || ==8.0.2 || ==7.10.3 || ==7.8.4 || ==7.6.3 || ==7.4.2 || ==7.2.2 || ==7.0.4
38+
Tested-with:
39+
GHC == 9.12.2
40+
GHC == 9.10.2
41+
GHC == 9.8.4
42+
GHC == 9.6.7
43+
GHC == 9.4.8
44+
GHC == 9.2.8
45+
GHC == 9.0.2
46+
GHC == 8.10.7
47+
GHC == 8.8.4
48+
GHC == 8.6.5
49+
GHC == 8.4.4
50+
GHC == 8.2.2
51+
GHC == 8.0.2
3952

4053
Bug-reports: https://github.com/byorgey/split/issues
4154

0 commit comments

Comments
 (0)