11# SUCCESS
2- # *INFO* Generating GitHub config for testing for GHC versions: 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3 8.8.4 8.10.1 8.10.2 8.10.3 8.10.4 8.10.5 8.10.6 8.10.7 9.0.1 9.0.2 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 9.2.6 9.2.7 9.2.8 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 9.4.6 9.4.7 9.4.8 9.6.1 9.6.2 9.6.3 9.6.4 9.6.5 9.6.6 9.6.7 9.8.1 9.8.2 9.8.3 9.8.4 9.10.1 9.10.2 9.12.1 9.12.2 ghcjs-8.4
2+ # *INFO* Generating GitHub config for testing for GHC versions: 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3 8.8.4 8.10.1 8.10.2 8.10.3 8.10.4 8.10.5 8.10.6 8.10.7 9.0.1 9.0.2 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 9.2.6 9.2.7 9.2.8 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 9.4.6 9.4.7 9.4.8 9.6.1 9.6.2 9.6.3 9.6.4 9.6.5 9.6.6 9.6.7 9.8.1 9.8.2 9.8.3 9.8.4 9.10.1 9.10.2 9.12.1 9.12.2 9.14.1  ghcjs-8.4
33# This GitHub workflow config has been generated by a script via
44#
55#   haskell-ci '--doctest' '--doctest-version=^>=0.20' 'github' 'doctest-version.project'
2828    strategy:
2929      matrix:
3030        include:
31+           - compiler: ghc-9.14.0.20250819
32+             compilerKind: ghc
33+             compilerVersion: 9.14.0.20250819
34+             setup-method: ghcup-prerelease
35+             allow-failure: false
3136          - compiler: ghc-9.12.2
3237            compilerKind: ghc
3338            compilerVersion: 9.12.2
@@ -345,7 +350,22 @@ jobs:
345350      - name: Install GHC (GHCup vanilla)
346351        if: matrix.setup-method == 'ghcup-vanilla'
347352        run: |
348-           "$HOME/.ghcup/bin/ghcup" -s https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8.yaml install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
353+           "$HOME/.ghcup/bin/ghcup" -s https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.9.yaml install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
354+           HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
355+           HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
356+           HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
357+           echo "HC=$HC" >> "$GITHUB_ENV"
358+           echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
359+           echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
360+         env:
361+           HCKIND: ${{ matrix.compilerKind }}
362+           HCNAME: ${{ matrix.compiler }}
363+           HCVER: ${{ matrix.compilerVersion }}
364+       - name: Install GHC (GHCup prerelease)
365+         if: matrix.setup-method == 'ghcup-prerelease'
366+         run: |
367+           "$HOME/.ghcup/bin/ghcup" config add-release-channel prereleases
368+           "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
349369          HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
350370          HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
351371          HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
@@ -366,7 +386,7 @@ jobs:
366386          echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
367387          echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
368388          echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
369-           echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
389+           if [ $((! GHCJSARITH && HCNUMVER >= 91400)) -ne 0 ] ; then  echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE= false" >> "$GITHUB_ENV" ; fi 
370390          echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
371391        env:
372392          HCKIND: ${{ matrix.compilerKind }}
@@ -394,6 +414,18 @@ jobs:
394414          repository hackage.haskell.org
395415            url: http://hackage.haskell.org/
396416          EOF
417+           if $HEADHACKAGE; then
418+           cat >> $CABAL_CONFIG <<EOF
419+           repository head.hackage.ghc.haskell.org
420+              url: https://ghc.gitlab.haskell.org/head.hackage/
421+              secure: True
422+              root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
423+                         26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
424+                         f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
425+              key-threshold: 3
426+           active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override
427+           EOF
428+           fi
397429          cat >> $CABAL_CONFIG <<EOF
398430          program-default-options
399431            ghc-options: $GHCJOBS +RTS -M3G -RTS
@@ -410,7 +442,7 @@ jobs:
410442      - name: cache (tools)
411443        uses: actions/cache/restore@v4
412444        with:
413-           key: ${{ runner.os }}-${{ matrix.compiler }}-tools-7adc43de 
445+           key: ${{ runner.os }}-${{ matrix.compiler }}-tools-7f722948 
414446          path: ~/.haskell-ci-tools
415447      - name: install cabal-plan
416448        run: |
@@ -429,7 +461,7 @@ jobs:
429461        if: always()
430462        uses: actions/cache/save@v4
431463        with:
432-           key: ${{ runner.os }}-${{ matrix.compiler }}-tools-7adc43de 
464+           key: ${{ runner.os }}-${{ matrix.compiler }}-tools-7f722948 
433465          path: ~/.haskell-ci-tools
434466      - name: checkout
435467        uses: actions/checkout@v4
@@ -464,6 +496,9 @@ jobs:
464496          if [ $((! GHCJSARITH && HCNUMVER >= 90000)) -ne 0 ] ; then echo "    ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
465497          cat >> cabal.project <<EOF
466498          EOF
499+           if $HEADHACKAGE; then
500+           echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
501+           fi
467502          $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(splitmix)$/; }' >> cabal.project.local
468503          cat cabal.project
469504          cat cabal.project.local
0 commit comments