Skip to content

Commit 690fb2c

Browse files
committed
ci: GHC 9.14
1 parent 113f357 commit 690fb2c

1 file changed

Lines changed: 42 additions & 4 deletions

File tree

.github/workflows/haskell-ci.yml

Lines changed: 42 additions & 4 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.20251211
1212
#
13-
# REGENDATA ("0.19.20250821",["github","generic-data.cabal"])
13+
# REGENDATA ("0.19.20251211",["github","generic-data.cabal"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -20,6 +20,9 @@ on:
2020
pull_request:
2121
branches:
2222
- master
23+
merge_group:
24+
branches:
25+
- master
2326
jobs:
2427
linux:
2528
name: Haskell-CI - Linux - ${{ matrix.compiler }}
@@ -32,6 +35,11 @@ jobs:
3235
strategy:
3336
matrix:
3437
include:
38+
- compiler: ghc-9.14.0.20251128
39+
compilerKind: ghc
40+
compilerVersion: 9.14.0.20251128
41+
setup-method: ghcup-prerelease
42+
allow-failure: false
3543
- compiler: ghc-9.12.2
3644
compilerKind: ghc
3745
compilerVersion: 9.12.2
@@ -121,6 +129,21 @@ jobs:
121129
HCKIND: ${{ matrix.compilerKind }}
122130
HCNAME: ${{ matrix.compiler }}
123131
HCVER: ${{ matrix.compilerVersion }}
132+
- name: Install GHC (GHCup prerelease)
133+
if: matrix.setup-method == 'ghcup-prerelease'
134+
run: |
135+
"$HOME/.ghcup/bin/ghcup" config add-release-channel prereleases
136+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
137+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
138+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
139+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
140+
echo "HC=$HC" >> "$GITHUB_ENV"
141+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
142+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
143+
env:
144+
HCKIND: ${{ matrix.compilerKind }}
145+
HCNAME: ${{ matrix.compiler }}
146+
HCVER: ${{ matrix.compilerVersion }}
124147
- name: Set PATH and environment variables
125148
run: |
126149
echo "$HOME/.cabal/bin" >> $GITHUB_PATH
@@ -131,7 +154,7 @@ jobs:
131154
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
132155
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
133156
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
134-
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
157+
if [ $((HCNUMVER >= 91400)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE=false" >> "$GITHUB_ENV" ; fi
135158
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
136159
env:
137160
HCKIND: ${{ matrix.compilerKind }}
@@ -159,6 +182,18 @@ jobs:
159182
repository hackage.haskell.org
160183
url: http://hackage.haskell.org/
161184
EOF
185+
if $HEADHACKAGE; then
186+
cat >> $CABAL_CONFIG <<EOF
187+
repository head.hackage.ghc.haskell.org
188+
url: https://ghc.gitlab.haskell.org/head.hackage/
189+
secure: True
190+
root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
191+
26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
192+
f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
193+
key-threshold: 3
194+
active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override
195+
EOF
196+
fi
162197
cat >> $CABAL_CONFIG <<EOF
163198
program-default-options
164199
ghc-options: $GHCJOBS +RTS -M3G -RTS
@@ -182,7 +217,7 @@ jobs:
182217
chmod a+x $HOME/.cabal/bin/cabal-plan
183218
cabal-plan --version
184219
- name: checkout
185-
uses: actions/checkout@v4
220+
uses: actions/checkout@v5
186221
with:
187222
path: source
188223
- name: initial cabal.project for sdist
@@ -214,6 +249,9 @@ jobs:
214249
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
215250
cat >> cabal.project <<EOF
216251
EOF
252+
if $HEADHACKAGE; then
253+
echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
254+
fi
217255
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(generic-data)$/; }' >> cabal.project.local
218256
cat cabal.project
219257
cat cabal.project.local

0 commit comments

Comments
 (0)