88#
99# For more information, see https://github.com/haskell-CI/haskell-ci
1010#
11- # version: 0.16.6
11+ # version: 0.19.20240708
1212#
13- # REGENDATA ("0.16.6 ",["github","haggle.cabal"])
13+ # REGENDATA ("0.19.20240708 ",["github","haggle.cabal"])
1414#
1515name : Haskell-CI
1616on :
@@ -23,14 +23,29 @@ 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.4.5
31+ - compiler : ghc-9.10.1
3232 compilerKind : ghc
33- compilerVersion : 9.4.5
33+ compilerVersion : 9.10.1
34+ setup-method : ghcup
35+ allow-failure : false
36+ - compiler : ghc-9.8.2
37+ compilerKind : ghc
38+ compilerVersion : 9.8.2
39+ setup-method : ghcup
40+ allow-failure : false
41+ - compiler : ghc-9.6.6
42+ compilerKind : ghc
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
3449 setup-method : ghcup
3550 allow-failure : false
3651 - compiler : ghc-9.2.8
@@ -51,54 +66,39 @@ jobs:
5166 - compiler : ghc-8.8.4
5267 compilerKind : ghc
5368 compilerVersion : 8.8.4
54- setup-method : hvr-ppa
69+ setup-method : ghcup
5570 allow-failure : false
5671 - compiler : ghc-8.6.5
5772 compilerKind : ghc
5873 compilerVersion : 8.6.5
59- setup-method : hvr-ppa
74+ setup-method : ghcup
6075 allow-failure : false
6176 - compiler : ghc-8.4.4
6277 compilerKind : ghc
6378 compilerVersion : 8.4.4
64- setup-method : hvr-ppa
79+ setup-method : ghcup
6580 allow-failure : false
6681 - compiler : ghc-8.2.2
6782 compilerKind : ghc
6883 compilerVersion : 8.2.2
69- setup-method : hvr-ppa
84+ setup-method : ghcup
7085 allow-failure : false
7186 - compiler : ghc-8.0.2
7287 compilerKind : ghc
7388 compilerVersion : 8.0.2
74- setup-method : hvr-ppa
75- allow-failure : false
76- - compiler : ghc-7.10.3
77- compilerKind : ghc
78- compilerVersion : 7.10.3
79- setup-method : hvr-ppa
89+ setup-method : ghcup
8090 allow-failure : false
8191 fail-fast : false
8292 steps :
8393 - name : apt
8494 run : |
8595 apt-get update
86- apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
87- if [ "${{ matrix.setup-method }}" = ghcup ]; then
88- mkdir -p "$HOME/.ghcup/bin"
89- curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
90- chmod a+x "$HOME/.ghcup/bin/ghcup"
91- "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
92- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
93- else
94- apt-add-repository -y 'ppa:hvr/ghc'
95- apt-get update
96- apt-get install -y "$HCNAME"
97- mkdir -p "$HOME/.ghcup/bin"
98- curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
99- chmod a+x "$HOME/.ghcup/bin/ghcup"
100- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
101- fi
96+ apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
97+ mkdir -p "$HOME/.ghcup/bin"
98+ curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
99+ chmod a+x "$HOME/.ghcup/bin/ghcup"
100+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
101+ "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
102102 env :
103103 HCKIND : ${{ matrix.compilerKind }}
104104 HCNAME : ${{ matrix.compiler }}
@@ -110,20 +110,13 @@ jobs:
110110 echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
111111 echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
112112 HCDIR=/opt/$HCKIND/$HCVER
113- if [ "${{ matrix.setup-method }}" = ghcup ]; then
114- HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
115- echo "HC=$HC" >> "$GITHUB_ENV"
116- echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
117- echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
118- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
119- else
120- HC=$HCDIR/bin/$HCKIND
121- echo "HC=$HC" >> "$GITHUB_ENV"
122- echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
123- echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
124- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
125- fi
126-
113+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
114+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
115+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
116+ echo "HC=$HC" >> "$GITHUB_ENV"
117+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
118+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
119+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
127120 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
128121 echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
129122 echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
@@ -180,7 +173,7 @@ jobs:
180173 chmod a+x $HOME/.cabal/bin/cabal-plan
181174 cabal-plan --version
182175 - name : checkout
183- uses : actions/checkout@v3
176+ uses : actions/checkout@v4
184177 with :
185178 path : source
186179 - name : initial cabal.project for sdist
@@ -208,15 +201,15 @@ jobs:
208201 if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
209202 cat >> cabal.project <<EOF
210203 EOF
211- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(haggle)$/; }' >> cabal.project.local
204+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(haggle)$/; }' >> cabal.project.local
212205 cat cabal.project
213206 cat cabal.project.local
214207 - name : dump install plan
215208 run : |
216209 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
217210 cabal-plan
218211 - name : restore cache
219- uses : actions/cache/restore@v3
212+ uses : actions/cache/restore@v4
220213 with :
221214 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
222215 path : ~/.cabal/store
@@ -246,7 +239,7 @@ jobs:
246239 rm -f cabal.project.local
247240 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
248241 - name : save cache
249- uses : actions/cache/save@v3
242+ uses : actions/cache/save@v4
250243 if : always()
251244 with :
252245 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
0 commit comments