Skip to content

Commit d6e095a

Browse files
authored
Merge pull request #86 from andreasabel/ghc-9.10
Bump CI to GHC 9.10.1
2 parents 0f77320 + 7ffed63 commit d6e095a

File tree

2 files changed

+45
-32
lines changed

2 files changed

+45
-32
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
#
77
# haskell-ci regenerate
88
#
9-
# For more information, see https://github.com/andreasabel/haskell-ci
9+
# For more information, see https://github.com/haskell-CI/haskell-ci
1010
#
11-
# version: 0.17.20231012
11+
# version: 0.19.20250821
1212
#
13-
# REGENDATA ("0.17.20231012",["github","happstack-server.cabal"])
13+
# REGENDATA ("0.19.20250821",["github","happstack-server.cabal"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -23,33 +23,38 @@ on:
2323
jobs:
2424
linux:
2525
name: Haskell-CI - Linux - ${{ matrix.compiler }}
26-
runs-on: ubuntu-20.04
26+
runs-on: ubuntu-24.04
2727
timeout-minutes:
2828
60
2929
container:
30-
image: buildpack-deps:focal
30+
image: buildpack-deps:jammy
3131
continue-on-error: ${{ matrix.allow-failure }}
3232
strategy:
3333
matrix:
3434
include:
35-
- compiler: ghc-9.10.1
35+
- compiler: ghc-9.12.2
3636
compilerKind: ghc
37-
compilerVersion: 9.10.1
37+
compilerVersion: 9.12.2
38+
setup-method: ghcup
39+
allow-failure: false
40+
- compiler: ghc-9.10.2
41+
compilerKind: ghc
42+
compilerVersion: 9.10.2
3843
setup-method: ghcup
3944
allow-failure: false
4045
- compiler: ghc-9.8.2
4146
compilerKind: ghc
4247
compilerVersion: 9.8.2
4348
setup-method: ghcup
4449
allow-failure: false
45-
- compiler: ghc-9.6.3
50+
- compiler: ghc-9.6.7
4651
compilerKind: ghc
47-
compilerVersion: 9.6.3
52+
compilerVersion: 9.6.7
4853
setup-method: ghcup
4954
allow-failure: false
50-
- compiler: ghc-9.4.7
55+
- compiler: ghc-9.4.8
5156
compilerKind: ghc
52-
compilerVersion: 9.4.7
57+
compilerVersion: 9.4.8
5358
setup-method: ghcup
5459
allow-failure: false
5560
- compiler: ghc-9.2.8
@@ -94,16 +99,29 @@ jobs:
9499
allow-failure: false
95100
fail-fast: false
96101
steps:
97-
- name: apt
102+
- name: apt-get install
98103
run: |
99104
apt-get update
100105
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
106+
- name: Install GHCup
107+
run: |
101108
mkdir -p "$HOME/.ghcup/bin"
102-
curl -sL https://downloads.haskell.org/ghcup/0.1.19.5/x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
109+
curl -sL https://downloads.haskell.org/ghcup/0.1.50.1/x86_64-linux-ghcup-0.1.50.1 > "$HOME/.ghcup/bin/ghcup"
103110
chmod a+x "$HOME/.ghcup/bin/ghcup"
104-
"$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml;
111+
- name: Install cabal-install
112+
run: |
113+
"$HOME/.ghcup/bin/ghcup" install cabal 3.16.0.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
114+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.16.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
115+
- name: Install GHC (GHCup)
116+
if: matrix.setup-method == 'ghcup'
117+
run: |
105118
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
106-
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
119+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
120+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
121+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
122+
echo "HC=$HC" >> "$GITHUB_ENV"
123+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
124+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
107125
env:
108126
HCKIND: ${{ matrix.compilerKind }}
109127
HCNAME: ${{ matrix.compiler }}
@@ -114,21 +132,12 @@ jobs:
114132
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
115133
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
116134
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
117-
HCDIR=/opt/$HCKIND/$HCVER
118-
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
119-
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
120-
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
121-
echo "HC=$HC" >> "$GITHUB_ENV"
122-
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
123-
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
124-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
125135
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
126136
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
127137
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
128138
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
129139
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
130140
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
131-
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
132141
env:
133142
HCKIND: ${{ matrix.compilerKind }}
134143
HCNAME: ${{ matrix.compiler }}
@@ -181,8 +190,6 @@ jobs:
181190
uses: actions/checkout@v4
182191
with:
183192
path: source
184-
env:
185-
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
186193
- name: initial cabal.project for sdist
187194
run: |
188195
touch cabal.project
@@ -205,18 +212,22 @@ jobs:
205212
touch cabal.project.local
206213
echo "packages: ${PKGDIR_happstack_server}" >> cabal.project
207214
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package happstack-server" >> cabal.project ; fi
208-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
215+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
216+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package happstack-server" >> cabal.project ; fi
217+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
218+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package happstack-server" >> cabal.project ; fi
219+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
209220
cat >> cabal.project <<EOF
210221
EOF
211-
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(happstack-server)$/; }' >> cabal.project.local
222+
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(happstack-server)$/; }' >> cabal.project.local
212223
cat cabal.project
213224
cat cabal.project.local
214225
- name: dump install plan
215226
run: |
216227
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
217228
cabal-plan
218229
- name: restore cache
219-
uses: actions/cache/restore@v3
230+
uses: actions/cache/restore@v4
220231
with:
221232
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
222233
path: ~/.cabal/store
@@ -246,8 +257,8 @@ jobs:
246257
rm -f cabal.project.local
247258
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
248259
- name: save cache
249-
uses: actions/cache/save@v3
250260
if: always()
261+
uses: actions/cache/save@v4
251262
with:
252263
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
253264
path: ~/.cabal/store

happstack-server.cabal

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ Cabal-Version: >= 1.10
1313
Extra-Source-Files: tests/Happstack/Server/Tests.hs README.md
1414

1515
tested-with:
16+
GHC == 9.12.2
17+
GHC == 9.10.2
1618
GHC == 9.8.2
17-
GHC == 9.6.3
18-
GHC == 9.4.7
19+
GHC == 9.6.7
20+
GHC == 9.4.8
1921
GHC == 9.2.8
2022
GHC == 9.0.2
2123
GHC == 8.10.7

0 commit comments

Comments
 (0)