88#
99# For more information, see https://github.com/haskell-CI/haskell-ci
1010#
11- # version: 0.19.20241021
11+ # version: 0.19.20241223
1212#
13- # REGENDATA ("0.19.20241021 ",["github","--config=cabal.haskell-ci","cabal.project"])
13+ # REGENDATA ("0.19.20241223 ",["github","--config=cabal.haskell-ci","cabal.project"])
1414#
1515name : Haskell-CI
1616on :
2828 strategy :
2929 matrix :
3030 include :
31- - compiler : ghc-9.12.20241014
31+ - compiler : ghc-9.12.1
3232 compilerKind : ghc
33- compilerVersion : 9.12.20241014
33+ compilerVersion : 9.12.1
3434 setup-method : ghcup
3535 allow-failure : false
3636 - compiler : ghc-9.10.1
@@ -95,16 +95,29 @@ jobs:
9595 allow-failure : false
9696 fail-fast : false
9797 steps :
98- - name : apt
98+ - name : apt-get install
9999 run : |
100100 apt-get update
101101 apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
102+ - name : Install GHCup
103+ run : |
102104 mkdir -p "$HOME/.ghcup/bin"
103105 curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
104106 chmod a+x "$HOME/.ghcup/bin/ghcup"
105- "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml;
107+ - name : Install cabal-install
108+ run : |
109+ "$HOME/.ghcup/bin/ghcup" install cabal 3.14.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
110+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
111+ - name : Install GHC (GHCup)
112+ if : matrix.setup-method == 'ghcup'
113+ run : |
106114 "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
107- "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
115+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
116+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
117+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
118+ echo "HC=$HC" >> "$GITHUB_ENV"
119+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
120+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
108121 env :
109122 HCKIND : ${{ matrix.compilerKind }}
110123 HCNAME : ${{ matrix.compiler }}
@@ -115,21 +128,12 @@ jobs:
115128 echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
116129 echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
117130 echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
118- HCDIR=/opt/$HCKIND/$HCVER
119- HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
120- HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
121- HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
122- echo "HC=$HC" >> "$GITHUB_ENV"
123- echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
124- echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
125- echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
126131 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
127132 echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
128133 echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
129134 echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
130- if [ $((HCNUMVER >= 91200)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE= false" >> "$GITHUB_ENV" ; fi
135+ echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
131136 echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
132- echo "GHCJSARITH=0" >> "$GITHUB_ENV"
133137 env :
134138 HCKIND : ${{ matrix.compilerKind }}
135139 HCNAME : ${{ matrix.compiler }}
@@ -156,18 +160,6 @@ jobs:
156160 repository hackage.haskell.org
157161 url: http://hackage.haskell.org/
158162 EOF
159- if $HEADHACKAGE; then
160- cat >> $CABAL_CONFIG <<EOF
161- repository head.hackage.ghc.haskell.org
162- url: https://ghc.gitlab.haskell.org/head.hackage/
163- secure: True
164- root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
165- 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
166- f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
167- key-threshold: 3
168- active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override
169- EOF
170- fi
171163 cat >> $CABAL_CONFIG <<EOF
172164 program-default-options
173165 ghc-options: $GHCJOBS +RTS -M3G -RTS
@@ -218,12 +210,21 @@ jobs:
218210 if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package text-show" >> cabal.project ; fi
219211 if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
220212 cat >> cabal.project <<EOF
213+ allow-newer: aeson:ghc-prim
214+ allow-newer: aeson:template-haskell
215+ allow-newer: binary-orphans:base
216+ allow-newer: indexed-traversable:base
217+ allow-newer: indexed-traversable-instances:base
218+ allow-newer: integer-conversion:base
219+ allow-newer: microstache:base
220+ allow-newer: quickcheck-instances:base
221+ allow-newer: semialign:base
222+ allow-newer: these:base
223+ allow-newer: uuid-types:template-haskell
224+
221225 package text-show
222226 ghc-options: -Werror
223227 EOF
224- if $HEADHACKAGE; then
225- echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
226- fi
227228 $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(text-show)$/; }' >> cabal.project.local
228229 cat cabal.project
229230 cat cabal.project.local
@@ -255,8 +256,8 @@ jobs:
255256 run : |
256257 if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all ; fi
257258 - name : save cache
258- uses : actions/cache/save@v4
259259 if : always()
260+ uses : actions/cache/save@v4
260261 with :
261262 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
262263 path : ~/.cabal/store
0 commit comments