Skip to content

Commit e3a7023

Browse files
authored
Merge pull request #315 from haskell-unordered-containers/ghc-9.12-rc1
Update CI with ghc-9.12-rc1
2 parents e5bbbf9 + 8966f6b commit e3a7023

File tree

2 files changed

+60
-19
lines changed

2 files changed

+60
-19
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 57 additions & 18 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.20241109
11+
# version: 0.19.20241202
1212
#
13-
# REGENDATA ("0.19.20241109",["github","cabal.project"])
13+
# REGENDATA ("0.19.20241202",["github","cabal.project"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -32,16 +32,21 @@ jobs:
3232
strategy:
3333
matrix:
3434
include:
35-
- compiler: ghc-9.12.0.20241031
35+
- compiler: ghc-9.12.0.20241128
3636
compilerKind: ghc
37-
compilerVersion: 9.12.0.20241031
38-
setup-method: ghcup
37+
compilerVersion: 9.12.0.20241128
38+
setup-method: ghcup-prerelease
3939
allow-failure: false
4040
- compiler: ghc-9.10.1
4141
compilerKind: ghc
4242
compilerVersion: 9.10.1
4343
setup-method: ghcup
4444
allow-failure: false
45+
- compiler: ghc-9.8.3
46+
compilerKind: ghc
47+
compilerVersion: 9.8.3
48+
setup-method: ghcup-vanilla
49+
allow-failure: false
4550
- compiler: ghc-9.8.2
4651
compilerKind: ghc
4752
compilerVersion: 9.8.2
@@ -54,41 +59,74 @@ jobs:
5459
allow-failure: false
5560
fail-fast: false
5661
steps:
57-
- name: apt
62+
- name: apt-get install
5863
run: |
5964
apt-get update
6065
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
66+
- name: Install GHCup
67+
run: |
6168
mkdir -p "$HOME/.ghcup/bin"
6269
curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
6370
chmod a+x "$HOME/.ghcup/bin/ghcup"
64-
"$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml;
65-
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
71+
- name: Install cabal-install
72+
run: |
6673
"$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
74+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
75+
- name: Install GHC (GHCup)
76+
if: matrix.setup-method == 'ghcup'
77+
run: |
78+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
79+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
80+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
81+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
82+
echo "HC=$HC" >> "$GITHUB_ENV"
83+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
84+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
6785
env:
6886
HCKIND: ${{ matrix.compilerKind }}
6987
HCNAME: ${{ matrix.compiler }}
7088
HCVER: ${{ matrix.compilerVersion }}
71-
- name: Set PATH and environment variables
89+
- name: Install GHC (GHCup vanilla)
90+
if: matrix.setup-method == 'ghcup-vanilla'
7291
run: |
73-
echo "$HOME/.cabal/bin" >> $GITHUB_PATH
74-
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
75-
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
76-
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
77-
HCDIR=/opt/$HCKIND/$HCVER
92+
"$HOME/.ghcup/bin/ghcup" -s https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8.yaml install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
7893
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
7994
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
8095
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
8196
echo "HC=$HC" >> "$GITHUB_ENV"
8297
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
8398
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
84-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
99+
env:
100+
HCKIND: ${{ matrix.compilerKind }}
101+
HCNAME: ${{ matrix.compiler }}
102+
HCVER: ${{ matrix.compilerVersion }}
103+
- name: Install GHC (GHCup prerelease)
104+
if: matrix.setup-method == 'ghcup-prerelease'
105+
run: |
106+
"$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml;
107+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
108+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
109+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
110+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
111+
echo "HC=$HC" >> "$GITHUB_ENV"
112+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
113+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
114+
env:
115+
HCKIND: ${{ matrix.compilerKind }}
116+
HCNAME: ${{ matrix.compiler }}
117+
HCVER: ${{ matrix.compilerVersion }}
118+
- name: Set PATH and environment variables
119+
run: |
120+
echo "$HOME/.cabal/bin" >> $GITHUB_PATH
121+
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
122+
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
123+
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
85124
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
86125
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
87126
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
88127
echo "ARG_BENCH=--disable-benchmarks" >> "$GITHUB_ENV"
89128
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
90129
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
91-
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
92130
env:
93131
HCKIND: ${{ matrix.compilerKind }}
94132
HCNAME: ${{ matrix.compiler }}
@@ -165,7 +203,8 @@ jobs:
165203
echo "package hashable" >> cabal.project
166204
echo " ghc-options: -Werror=missing-methods" >> cabal.project
167205
cat >> cabal.project <<EOF
168-
allow-newer: splitmix:base
206+
allow-newer: splitmix-0.1.0.5:base
207+
allow-newer: tagged-0.8.8:template-haskell
169208
EOF
170209
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(hashable)$/; }' >> cabal.project.local
171210
cat cabal.project
@@ -228,8 +267,8 @@ jobs:
228267
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='hashable +random-initial-seed' --dependencies-only -j2 all
229268
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='hashable +random-initial-seed' all
230269
- name: save cache
231-
uses: actions/cache/save@v4
232270
if: always()
271+
uses: actions/cache/save@v4
233272
with:
234273
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
235274
path: ~/.cabal/store

cabal.project

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
packages: .
22
tests: True
33

4-
allow-newer: splitmix:base
4+
allow-newer: splitmix-0.1.0.5:base
5+
allow-newer: tagged-0.8.8:template-haskell
6+
57
--
68
-- allow-newer: base
79
-- allow-newer: bytestring

0 commit comments

Comments
 (0)