88# 
99#  For more information, see https://github.com/haskell-CI/haskell-ci
1010# 
11- #  version: 0.19.20250216 
11+ #  version: 0.19.20250821 
1212# 
13- #  REGENDATA ("0.19.20250216 ",["github","resolv.cabal"])
13+ #  REGENDATA ("0.19.20250821 ",["github","resolv.cabal"])
1414# 
1515name : Haskell-CI 
1616on :
@@ -32,24 +32,29 @@ jobs:
3232    strategy :
3333      matrix :
3434        include :
35-           - compiler : ghc-9.12.1  
35+           - compiler : ghc-9.14.0.20250819  
3636            compilerKind : ghc 
37-             compilerVersion : 9.12.1 
37+             compilerVersion : 9.14.0.20250819 
38+             setup-method : ghcup-prerelease 
39+             allow-failure : false 
40+           - compiler : ghc-9.12.2 
41+             compilerKind : ghc 
42+             compilerVersion : 9.12.2 
3843            setup-method : ghcup 
3944            allow-failure : false 
40-           - compiler : ghc-9.10.1  
45+           - compiler : ghc-9.10.2  
4146            compilerKind : ghc 
42-             compilerVersion : 9.10.1  
47+             compilerVersion : 9.10.2  
4348            setup-method : ghcup 
4449            allow-failure : false 
4550          - compiler : ghc-9.8.4 
4651            compilerKind : ghc 
4752            compilerVersion : 9.8.4 
4853            setup-method : ghcup 
4954            allow-failure : false 
50-           - compiler : ghc-9.6.6  
55+           - compiler : ghc-9.6.7  
5156            compilerKind : ghc 
52-             compilerVersion : 9.6.6  
57+             compilerVersion : 9.6.7  
5358            setup-method : ghcup 
5459            allow-failure : false 
5560          - compiler : ghc-9.4.8 
@@ -106,12 +111,12 @@ jobs:
106111       - name : Install GHCup 
107112        run : | 
108113          mkdir -p "$HOME/.ghcup/bin" 
109-           curl -sL https://downloads.haskell.org/ghcup/0.1.30.0 /x86_64-linux-ghcup-0.1.30.0  > "$HOME/.ghcup/bin/ghcup" 
114+           curl -sL https://downloads.haskell.org/ghcup/0.1.50.1 /x86_64-linux-ghcup-0.1.50.1  > "$HOME/.ghcup/bin/ghcup" 
110115          chmod a+x "$HOME/.ghcup/bin/ghcup" 
111116       - name : Install cabal-install 
112117        run : | 
113-           "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1 .0 || (cat "$HOME"/.ghcup/logs/*.* && false) 
114-           echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1 .0 -vnormal+nowrap" >> "$GITHUB_ENV" 
118+           "$HOME/.ghcup/bin/ghcup" install cabal 3.16.0 .0 || (cat "$HOME"/.ghcup/logs/*.* && false) 
119+           echo "CABAL=$HOME/.ghcup/bin/cabal-3.16.0 .0 -vnormal+nowrap" >> "$GITHUB_ENV" 
115120       - name : Install GHC (GHCup) 
116121        if : matrix.setup-method == 'ghcup' 
117122        run : | 
@@ -126,6 +131,21 @@ jobs:
126131          HCKIND : ${{ matrix.compilerKind }} 
127132          HCNAME : ${{ matrix.compiler }} 
128133          HCVER : ${{ matrix.compilerVersion }} 
134+       - name : Install GHC (GHCup prerelease) 
135+         if : matrix.setup-method == 'ghcup-prerelease' 
136+         run : | 
137+           "$HOME/.ghcup/bin/ghcup" config add-release-channel prereleases 
138+           "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false) 
139+           HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER") 
140+           HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#') 
141+           HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#') 
142+           echo "HC=$HC" >> "$GITHUB_ENV" 
143+           echo "HCPKG=$HCPKG" >> "$GITHUB_ENV" 
144+           echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV" 
145+          env :
146+           HCKIND : ${{ matrix.compilerKind }} 
147+           HCNAME : ${{ matrix.compiler }} 
148+           HCVER : ${{ matrix.compilerVersion }} 
129149      - name : Set PATH and environment variables 
130150        run : | 
131151          echo "$HOME/.cabal/bin" >> $GITHUB_PATH 
@@ -136,7 +156,7 @@ jobs:
136156          echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV" 
137157          echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV" 
138158          echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV" 
139-           echo "HEADHACKAGE=false" >> "$GITHUB_ENV" 
159+           if [ $((HCNUMVER >= 91400)) -ne 0 ] ; then  echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE= false" >> "$GITHUB_ENV" ; fi  
140160          echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV" 
141161         env :
142162          HCKIND : ${{ matrix.compilerKind }} 
@@ -164,6 +184,18 @@ jobs:
164184          repository hackage.haskell.org 
165185            url: http://hackage.haskell.org/ 
166186          EOF 
187+           if $HEADHACKAGE; then 
188+           cat >> $CABAL_CONFIG <<EOF 
189+           repository head.hackage.ghc.haskell.org 
190+              url: https://ghc.gitlab.haskell.org/head.hackage/ 
191+              secure: True  
192+              root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d 
193+                         26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329 
194+                         f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89 
195+              key-threshold: 3 
196+           active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override 
197+           EOF 
198+           fi 
167199          cat >> $CABAL_CONFIG <<EOF 
168200          program-default-options 
169201            ghc-options: $GHCJOBS +RTS -M3G -RTS 
@@ -215,9 +247,16 @@ jobs:
215247          touch cabal.project.local 
216248          echo "packages: ${PKGDIR_resolv}" >> cabal.project 
217249          if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package resolv" >> cabal.project ; fi 
218-           if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "    ghc-options: -Werror=missing-methods" >> cabal.project ; fi 
250+           if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "    ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi 
251+           if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package resolv" >> cabal.project ; fi 
252+           if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "    ghc-options: -Werror=unused-packages" >> cabal.project ; fi 
253+           if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package resolv" >> cabal.project ; fi 
254+           if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "    ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi 
219255          cat >> cabal.project <<EOF 
220256          EOF 
257+           if $HEADHACKAGE; then 
258+           echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project 
259+           fi 
221260          $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(resolv)$/; }' >> cabal.project.local 
222261          cat cabal.project 
223262          cat cabal.project.local 
0 commit comments