88#
99# For more information, see https://github.com/haskell-CI/haskell-ci
1010#
11- # version: 0.17.20230811
11+ # version: 0.19.20240514
1212#
13- # REGENDATA ("0.17.20230811 ",["github","--config=cabal.haskell-ci","text.cabal"])
13+ # REGENDATA ("0.19.20240514 ",["github","--config=cabal.haskell-ci","text.cabal"])
1414#
1515name : Haskell-CI
1616on :
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 :
@@ -32,20 +32,20 @@ jobs:
3232 compilerKind : ghc
3333 compilerVersion : 9.10.1
3434 setup-method : ghcup
35- allow-failure : true
35+ allow-failure : false
3636 - compiler : ghc-9.8.2
3737 compilerKind : ghc
3838 compilerVersion : 9.8.2
3939 setup-method : ghcup
40- allow-failure : true
41- - compiler : ghc-9.6.5
40+ allow-failure : false
41+ - compiler : ghc-9.6.4
4242 compilerKind : ghc
43- compilerVersion : 9.6.5
43+ compilerVersion : 9.6.4
4444 setup-method : ghcup
4545 allow-failure : false
46- - compiler : ghc-9.4.6
46+ - compiler : ghc-9.4.8
4747 compilerKind : ghc
48- compilerVersion : 9.4.6
48+ compilerVersion : 9.4.8
4949 setup-method : ghcup
5050 allow-failure : false
5151 - compiler : ghc-9.2.8
@@ -78,23 +78,17 @@ jobs:
7878 compilerVersion : 8.4.4
7979 setup-method : ghcup
8080 allow-failure : false
81- - compiler : ghc-8.2.2
82- compilerKind : ghc
83- compilerVersion : 8.2.2
84- setup-method : ghcup
85- allow-failure : false
8681 fail-fast : false
8782 steps :
8883 - name : apt
8984 run : |
9085 apt-get update
9186 apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
9287 mkdir -p "$HOME/.ghcup/bin"
93- curl -sL https://downloads.haskell.org/ghcup/0.1.19.5 /x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
88+ curl -sL https://downloads.haskell.org/ghcup/0.1.20.0 /x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
9489 chmod a+x "$HOME/.ghcup/bin/ghcup"
95- "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml;
9690 "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
97- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1 .0 || (cat "$HOME"/.ghcup/logs/*.* && false)
91+ "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2 .0 || (cat "$HOME"/.ghcup/logs/*.* && false)
9892 env :
9993 HCKIND : ${{ matrix.compilerKind }}
10094 HCNAME : ${{ matrix.compiler }}
@@ -112,12 +106,12 @@ jobs:
112106 echo "HC=$HC" >> "$GITHUB_ENV"
113107 echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
114108 echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
115- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1 .0 -vnormal+nowrap" >> "$GITHUB_ENV"
109+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2 .0 -vnormal+nowrap" >> "$GITHUB_ENV"
116110 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
117111 echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
118112 echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
119113 echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
120- if [ $((HCNUMVER >= 90800)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE= false" >> "$GITHUB_ENV" ; fi
114+ echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
121115 echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
122116 echo "GHCJSARITH=0" >> "$GITHUB_ENV"
123117 env :
@@ -146,18 +140,6 @@ jobs:
146140 repository hackage.haskell.org
147141 url: http://hackage.haskell.org/
148142 EOF
149- if $HEADHACKAGE; then
150- cat >> $CABAL_CONFIG <<EOF
151- repository head.hackage.ghc.haskell.org
152- url: https://ghc.gitlab.haskell.org/head.hackage/
153- secure: True
154- root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
155- 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
156- f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
157- key-threshold: 3
158- active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override
159- EOF
160- fi
161143 cat >> $CABAL_CONFIG <<EOF
162144 program-default-options
163145 ghc-options: $GHCJOBS +RTS -M3G -RTS
@@ -183,14 +165,14 @@ jobs:
183165 - name : install cabal-docspec
184166 run : |
185167 mkdir -p $HOME/.cabal/bin
186- curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20230517 /cabal-docspec-0.0.0.20230517 -x86_64-linux.xz > cabal-docspec.xz
187- echo '3b31bbe463ad4d671abbc103db49628562ec48a6604cab278207b5b6acd21ed7 cabal-docspec.xz' | sha256sum -c -
168+ curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20240414 /cabal-docspec-0.0.0.20240414 -x86_64-linux.xz > cabal-docspec.xz
169+ echo '2d18a3f79619e8ec5f11870f926f6dc2616e02a6c889315b7f82044b95a1adb9 cabal-docspec.xz' | sha256sum -c -
188170 xz -d < cabal-docspec.xz > $HOME/.cabal/bin/cabal-docspec
189171 rm -f cabal-docspec.xz
190172 chmod a+x $HOME/.cabal/bin/cabal-docspec
191173 cabal-docspec --version
192174 - name : checkout
193- uses : actions/checkout@v3
175+ uses : actions/checkout@v4
194176 with :
195177 path : source
196178 - name : initial cabal.project for sdist
@@ -218,18 +200,15 @@ jobs:
218200 echo " ghc-options: -Werror=missing-methods" >> cabal.project
219201 cat >> cabal.project <<EOF
220202 EOF
221- if $HEADHACKAGE; then
222- echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
223- fi
224- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(text)$/; }' >> cabal.project.local
203+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(text)$/; }' >> cabal.project.local
225204 cat cabal.project
226205 cat cabal.project.local
227206 - name : dump install plan
228207 run : |
229208 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
230209 cabal-plan
231210 - name : restore cache
232- uses : actions/cache/restore@v3
211+ uses : actions/cache/restore@v4
233212 with :
234213 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
235214 path : ~/.cabal/store
@@ -263,7 +242,7 @@ jobs:
263242 rm -f cabal.project.local
264243 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
265244 - name : save cache
266- uses : actions/cache/save@v3
245+ uses : actions/cache/save@v4
267246 if : always()
268247 with :
269248 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
0 commit comments