88#
99# For more information, see https://github.com/haskell-CI/haskell-ci
1010#
11- # version: 0.16
11+ # version: 0.19.20241021
1212#
13- # REGENDATA ("0.16 ",["github","cabal.project"])
13+ # REGENDATA ("0.19.20241021 ",["github","cabal.project"])
1414#
1515name : Haskell-CI
1616on :
@@ -23,24 +23,34 @@ jobs:
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.6 .1
31+ - compiler : ghc-9.10 .1
3232 compilerKind : ghc
33- compilerVersion : 9.6 .1
33+ compilerVersion : 9.10 .1
3434 setup-method : ghcup
3535 allow-failure : false
36- - compiler : ghc-9.4.4
36+ - compiler : ghc-9.8.2
3737 compilerKind : ghc
38- compilerVersion : 9.4.4
38+ compilerVersion : 9.8.2
3939 setup-method : ghcup
4040 allow-failure : false
41- - compiler : ghc-9.2.7
41+ - compiler : ghc-9.6.6
4242 compilerKind : ghc
43- compilerVersion : 9.2.7
43+ compilerVersion : 9.6.6
44+ setup-method : ghcup
45+ allow-failure : false
46+ - compiler : ghc-9.4.8
47+ compilerKind : ghc
48+ compilerVersion : 9.4.8
49+ setup-method : ghcup
50+ allow-failure : false
51+ - compiler : ghc-9.2.8
52+ compilerKind : ghc
53+ compilerVersion : 9.2.8
4454 setup-method : ghcup
4555 allow-failure : false
4656 - compiler : ghc-9.0.2
@@ -56,39 +66,30 @@ jobs:
5666 - compiler : ghc-8.8.4
5767 compilerKind : ghc
5868 compilerVersion : 8.8.4
59- setup-method : hvr-ppa
69+ setup-method : ghcup
6070 allow-failure : false
6171 - compiler : ghc-8.6.5
6272 compilerKind : ghc
6373 compilerVersion : 8.6.5
64- setup-method : hvr-ppa
74+ setup-method : ghcup
6575 allow-failure : false
6676 - compiler : ghc-8.4.4
6777 compilerKind : ghc
6878 compilerVersion : 8.4.4
69- setup-method : hvr-ppa
79+ setup-method : ghcup
7080 allow-failure : false
7181 fail-fast : false
7282 steps :
7383 - name : apt
7484 run : |
7585 apt-get update
76- apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
77- if [ "${{ matrix.setup-method }}" = ghcup ]; then
78- mkdir -p "$HOME/.ghcup/bin"
79- curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
80- chmod a+x "$HOME/.ghcup/bin/ghcup"
81- "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
82- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
83- else
84- apt-add-repository -y 'ppa:hvr/ghc'
85- apt-get update
86- apt-get install -y "$HCNAME"
87- mkdir -p "$HOME/.ghcup/bin"
88- curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
89- chmod a+x "$HOME/.ghcup/bin/ghcup"
90- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
91- fi
86+ apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
87+ mkdir -p "$HOME/.ghcup/bin"
88+ curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
89+ chmod a+x "$HOME/.ghcup/bin/ghcup"
90+ "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml;
91+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
92+ "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
9293 env :
9394 HCKIND : ${{ matrix.compilerKind }}
9495 HCNAME : ${{ matrix.compiler }}
@@ -100,20 +101,13 @@ jobs:
100101 echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
101102 echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
102103 HCDIR=/opt/$HCKIND/$HCVER
103- if [ "${{ matrix.setup-method }}" = ghcup ]; then
104- HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
105- echo "HC=$HC" >> "$GITHUB_ENV"
106- echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
107- echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
108- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
109- else
110- HC=$HCDIR/bin/$HCKIND
111- echo "HC=$HC" >> "$GITHUB_ENV"
112- echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
113- echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
114- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
115- fi
116-
104+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
105+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
106+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
107+ echo "HC=$HC" >> "$GITHUB_ENV"
108+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
109+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
110+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
117111 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
118112 echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
119113 echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
@@ -170,7 +164,7 @@ jobs:
170164 chmod a+x $HOME/.cabal/bin/cabal-plan
171165 cabal-plan --version
172166 - name : checkout
173- uses : actions/checkout@v3
167+ uses : actions/checkout@v4
174168 with :
175169 path : source
176170 - name : initial cabal.project for sdist
@@ -204,15 +198,15 @@ jobs:
204198 echo " ghc-options: -Werror=missing-methods" >> cabal.project
205199 cat >> cabal.project <<EOF
206200 EOF
207- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(javascript-bridge|javascript-bridge-benchmarks)$/; }' >> cabal.project.local
201+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(javascript-bridge|javascript-bridge-benchmarks)$/; }' >> cabal.project.local
208202 cat cabal.project
209203 cat cabal.project.local
210204 - name : dump install plan
211205 run : |
212206 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
213207 cabal-plan
214208 - name : restore cache
215- uses : actions/cache/restore@v3
209+ uses : actions/cache/restore@v4
216210 with :
217211 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
218212 path : ~/.cabal/store
@@ -234,7 +228,7 @@ jobs:
234228 run : |
235229 $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
236230 - name : save cache
237- uses : actions/cache/save@v3
231+ uses : actions/cache/save@v4
238232 if : always()
239233 with :
240234 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
0 commit comments