Skip to content

Commit e37d9d1

Browse files
committed
Haskell CI: drop GHC 8
1 parent b869045 commit e37d9d1

3 files changed

Lines changed: 32 additions & 80 deletions

File tree

.github/workflows/haskell-ci.yml

Lines changed: 22 additions & 72 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.19.20250821
11+
# version: 0.19.20260209
1212
#
13-
# REGENDATA ("0.19.20250821",["github","hackage-cli.cabal"])
13+
# REGENDATA ("0.19.20260209",["github","hackage-cli.cabal"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -20,6 +20,11 @@ on:
2020
pull_request:
2121
branches:
2222
- master
23+
merge_group:
24+
branches:
25+
- master
26+
workflow_dispatch:
27+
{}
2328
jobs:
2429
linux:
2530
name: Haskell-CI - Linux - ${{ matrix.compiler }}
@@ -32,19 +37,19 @@ jobs:
3237
strategy:
3338
matrix:
3439
include:
35-
- compiler: ghc-9.14.0.20250819
40+
- compiler: ghc-9.14.1
3641
compilerKind: ghc
37-
compilerVersion: 9.14.0.20250819
38-
setup-method: ghcup-prerelease
42+
compilerVersion: 9.14.1
43+
setup-method: ghcup
3944
allow-failure: false
40-
- compiler: ghc-9.12.2
45+
- compiler: ghc-9.12.4
4146
compilerKind: ghc
42-
compilerVersion: 9.12.2
47+
compilerVersion: 9.12.4
4348
setup-method: ghcup
4449
allow-failure: false
45-
- compiler: ghc-9.10.2
50+
- compiler: ghc-9.10.3
4651
compilerKind: ghc
47-
compilerVersion: 9.10.2
52+
compilerVersion: 9.10.3
4853
setup-method: ghcup
4954
allow-failure: false
5055
- compiler: ghc-9.8.4
@@ -72,37 +77,12 @@ jobs:
7277
compilerVersion: 9.0.2
7378
setup-method: ghcup
7479
allow-failure: false
75-
- compiler: ghc-8.10.7
76-
compilerKind: ghc
77-
compilerVersion: 8.10.7
78-
setup-method: ghcup
79-
allow-failure: false
80-
- compiler: ghc-8.8.4
81-
compilerKind: ghc
82-
compilerVersion: 8.8.4
83-
setup-method: ghcup
84-
allow-failure: false
85-
- compiler: ghc-8.6.5
86-
compilerKind: ghc
87-
compilerVersion: 8.6.5
88-
setup-method: ghcup
89-
allow-failure: false
90-
- compiler: ghc-8.4.4
91-
compilerKind: ghc
92-
compilerVersion: 8.4.4
93-
setup-method: ghcup
94-
allow-failure: false
95-
- compiler: ghc-8.2.2
96-
compilerKind: ghc
97-
compilerVersion: 8.2.2
98-
setup-method: ghcup
99-
allow-failure: false
10080
fail-fast: false
10181
steps:
10282
- name: apt-get install
10383
run: |
10484
apt-get update
105-
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
85+
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
10686
apt-get install -y libbrotli-dev
10787
- name: Install GHCup
10888
run: |
@@ -127,21 +107,6 @@ jobs:
127107
HCKIND: ${{ matrix.compilerKind }}
128108
HCNAME: ${{ matrix.compiler }}
129109
HCVER: ${{ matrix.compilerVersion }}
130-
- name: Install GHC (GHCup prerelease)
131-
if: matrix.setup-method == 'ghcup-prerelease'
132-
run: |
133-
"$HOME/.ghcup/bin/ghcup" config add-release-channel prereleases
134-
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
135-
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
136-
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
137-
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
138-
echo "HC=$HC" >> "$GITHUB_ENV"
139-
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
140-
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
141-
env:
142-
HCKIND: ${{ matrix.compilerKind }}
143-
HCNAME: ${{ matrix.compiler }}
144-
HCVER: ${{ matrix.compilerVersion }}
145110
- name: Set PATH and environment variables
146111
run: |
147112
echo "$HOME/.cabal/bin" >> $GITHUB_PATH
@@ -152,7 +117,7 @@ jobs:
152117
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
153118
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
154119
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
155-
if [ $((HCNUMVER >= 91400)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE=false" >> "$GITHUB_ENV" ; fi
120+
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
156121
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
157122
env:
158123
HCKIND: ${{ matrix.compilerKind }}
@@ -180,18 +145,6 @@ jobs:
180145
repository hackage.haskell.org
181146
url: http://hackage.haskell.org/
182147
EOF
183-
if $HEADHACKAGE; then
184-
cat >> $CABAL_CONFIG <<EOF
185-
repository head.hackage.ghc.haskell.org
186-
url: https://ghc.gitlab.haskell.org/head.hackage/
187-
secure: True
188-
root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
189-
26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
190-
f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
191-
key-threshold: 3
192-
active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override
193-
EOF
194-
fi
195148
cat >> $CABAL_CONFIG <<EOF
196149
program-default-options
197150
ghc-options: $GHCJOBS +RTS -M3G -RTS
@@ -215,7 +168,7 @@ jobs:
215168
chmod a+x $HOME/.cabal/bin/cabal-plan
216169
cabal-plan --version
217170
- name: checkout
218-
uses: actions/checkout@v4
171+
uses: actions/checkout@v6
219172
with:
220173
path: source
221174
- name: initial cabal.project for sdist
@@ -243,22 +196,19 @@ jobs:
243196
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
244197
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package hackage-cli" >> cabal.project ; fi
245198
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
246-
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package hackage-cli" >> cabal.project ; fi
247-
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
199+
echo "package hackage-cli" >> cabal.project
200+
echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project
248201
cat >> cabal.project <<EOF
249202
EOF
250-
if $HEADHACKAGE; then
251-
echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
252-
fi
253-
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(Cabal|binary|hackage-cli)$/; }' >> cabal.project.local
203+
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(hackage-cli)$/; }' >> cabal.project.local
254204
cat cabal.project
255205
cat cabal.project.local
256206
- name: dump install plan
257207
run: |
258208
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
259209
cabal-plan
260210
- name: restore cache
261-
uses: actions/cache/restore@v4
211+
uses: actions/cache/restore@v5
262212
with:
263213
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
264214
path: ~/.cabal/store
@@ -289,7 +239,7 @@ jobs:
289239
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
290240
- name: save cache
291241
if: always()
292-
uses: actions/cache/save@v4
242+
uses: actions/cache/save@v5
293243
with:
294244
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
295245
path: ~/.cabal/store

cabal.haskell-ci

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ branches: master
22

33
-- By default `installed` constraints are used for packages
44
-- in global db. We can modify which constraints are used.
5-
installed: +all -binary -Cabal
5+
-- 2026-04-18: For building with GHC 8, we'd need to unconstrain Cabal:
6+
-- installed: +all -binary -Cabal
67

78
apt: libbrotli-dev

hackage-cli.cabal

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,19 @@ build-type: Simple
1919
tested-with:
2020
-- Keep in descending order.
2121
GHC == 9.14.1
22-
GHC == 9.12.2
23-
GHC == 9.10.2
22+
GHC == 9.12.4
23+
GHC == 9.10.3
2424
GHC == 9.8.4
2525
GHC == 9.6.7
2626
GHC == 9.4.8
2727
GHC == 9.2.8
2828
GHC == 9.0.2
29-
GHC == 8.10.7
30-
GHC == 8.8.4
31-
GHC == 8.6.5
32-
GHC == 8.4.4
33-
GHC == 8.2.2
29+
-- -- 2026-04-18: Stop testing GHC 8 on CI
30+
-- GHC == 8.10.7
31+
-- GHC == 8.8.4
32+
-- GHC == 8.6.5
33+
-- GHC == 8.4.4
34+
-- GHC == 8.2.2
3435

3536
extra-doc-files:
3637
CHANGELOG.md

0 commit comments

Comments
 (0)