66# 
77#    haskell-ci regenerate
88# 
9- #  For more information, see https://github.com/haskell-CI /haskell-ci
9+ #  For more information, see https://github.com/andreasabel /haskell-ci
1010# 
11- #  version: 0.15.20230321 
11+ #  version: 0.17.20231002 
1212# 
13- #  REGENDATA ("0.15.20230321 ",["github","HTTP.cabal"])
13+ #  REGENDATA ("0.17.20231002 ",["github","HTTP.cabal"])
1414# 
1515name : Haskell-CI 
1616on :
17-   - push 
18-   - pull_request 
17+   push :
18+     branches :
19+       - master 
20+   pull_request :
21+     branches :
22+       - master 
1923jobs :
2024  linux :
2125    name : Haskell-CI - Linux - ${{ matrix.compiler }} 
2226    runs-on : ubuntu-20.04 
2327    timeout-minutes :
2428      60 
2529    container :
26-       image : buildpack-deps:bionic  
30+       image : buildpack-deps:focal  
2731    continue-on-error : ${{ matrix.allow-failure }} 
2832    strategy :
2933      matrix :
3034        include :
31-           - compiler : ghc-9.6.1  
35+           - compiler : ghc-9.8.0.20230929  
3236            compilerKind : ghc 
33-             compilerVersion : 9.6.1 
37+             compilerVersion : 9.8.0.20230929 
38+             setup-method : ghcup 
39+             allow-failure : true 
40+           - compiler : ghc-9.6.3 
41+             compilerKind : ghc 
42+             compilerVersion : 9.6.3 
3443            setup-method : ghcup 
3544            allow-failure : false 
36-           - compiler : ghc-9.4.4  
45+           - compiler : ghc-9.4.7  
3746            compilerKind : ghc 
38-             compilerVersion : 9.4.4  
47+             compilerVersion : 9.4.7  
3948            setup-method : ghcup 
4049            allow-failure : false 
41-           - compiler : ghc-9.2.7  
50+           - compiler : ghc-9.2.8  
4251            compilerKind : ghc 
43-             compilerVersion : 9.2.7  
52+             compilerVersion : 9.2.8  
4453            setup-method : ghcup 
4554            allow-failure : false 
4655          - compiler : ghc-9.0.2 
8392            compilerVersion : 7.10.3 
8493            setup-method : hvr-ppa 
8594            allow-failure : false 
86-           - compiler : ghc-7.8.4 
87-             compilerKind : ghc 
88-             compilerVersion : 7.8.4 
89-             setup-method : hvr-ppa 
90-             allow-failure : false 
91-           - compiler : ghc-7.6.3 
92-             compilerKind : ghc 
93-             compilerVersion : 7.6.3 
94-             setup-method : hvr-ppa 
95-             allow-failure : false 
9695      fail-fast : false 
9796    steps :
9897      - name : apt 
@@ -101,17 +100,19 @@ jobs:
101100          apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 
102101          if [ "${{ matrix.setup-method }}" = ghcup ]; then 
103102            mkdir -p "$HOME/.ghcup/bin" 
104-             curl -sL https://downloads.haskell.org/ghcup/0.1.19.2 /x86_64-linux-ghcup-0.1.19.2  > "$HOME/.ghcup/bin/ghcup" 
103+             curl -sL https://downloads.haskell.org/ghcup/0.1.19.5 /x86_64-linux-ghcup-0.1.19.5  > "$HOME/.ghcup/bin/ghcup" 
105104            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.7.yaml; 
106106            "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false) 
107107            "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false) 
108108          else 
109109            apt-add-repository -y 'ppa:hvr/ghc' 
110110            apt-get update 
111111            apt-get install -y "$HCNAME" 
112112            mkdir -p "$HOME/.ghcup/bin" 
113-             curl -sL https://downloads.haskell.org/ghcup/0.1.19.2 /x86_64-linux-ghcup-0.1.19.2  > "$HOME/.ghcup/bin/ghcup" 
113+             curl -sL https://downloads.haskell.org/ghcup/0.1.19.5 /x86_64-linux-ghcup-0.1.19.5  > "$HOME/.ghcup/bin/ghcup" 
114114            chmod a+x "$HOME/.ghcup/bin/ghcup" 
115+             "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml; 
115116            "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false) 
116117          fi 
117118         env :
@@ -126,10 +127,12 @@ jobs:
126127          echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV" 
127128          HCDIR=/opt/$HCKIND/$HCVER 
128129          if [ "${{ matrix.setup-method }}" = ghcup ]; then 
129-             HC=$HOME/.ghcup/bin/$HCKIND-$HCVER 
130+             HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER") 
131+             HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#') 
132+             HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#') 
130133            echo "HC=$HC" >> "$GITHUB_ENV" 
131-             echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER " >> "$GITHUB_ENV" 
132-             echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER " >> "$GITHUB_ENV" 
134+             echo "HCPKG=$HCPKG " >> "$GITHUB_ENV" 
135+             echo "HADDOCK=$HADDOCK " >> "$GITHUB_ENV" 
133136            echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV" 
134137          else 
135138            HC=$HCDIR/bin/$HCKIND 
@@ -143,7 +146,7 @@ jobs:
143146          echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV" 
144147          echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV" 
145148          echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV" 
146-           echo "HEADHACKAGE=false" >> "$GITHUB_ENV" 
149+           if [ $((HCNUMVER >= 90800)) -ne 0 ] ; then  echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE= false" >> "$GITHUB_ENV" ; fi  
147150          echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV" 
148151          echo "GHCJSARITH=0" >> "$GITHUB_ENV" 
149152         env :
@@ -172,6 +175,18 @@ jobs:
172175          repository hackage.haskell.org 
173176            url: http://hackage.haskell.org/ 
174177          EOF 
178+           if $HEADHACKAGE; then 
179+           cat >> $CABAL_CONFIG <<EOF 
180+           repository head.hackage.ghc.haskell.org 
181+              url: https://ghc.gitlab.haskell.org/head.hackage/ 
182+              secure: True  
183+              root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d 
184+                         26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329 
185+                         f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89 
186+              key-threshold: 3 
187+           active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override 
188+           EOF 
189+           fi 
175190          cat >> $CABAL_CONFIG <<EOF 
176191          program-default-options 
177192            ghc-options: $GHCJOBS +RTS -M3G -RTS 
@@ -188,14 +203,14 @@ jobs:
188203       - name : install cabal-plan 
189204        run : | 
190205          mkdir -p $HOME/.cabal/bin 
191-           curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2 .0/cabal-plan-0.6.2 .0-x86_64-linux.xz > cabal-plan.xz 
192-           echo 'de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc   cabal-plan.xz' | sha256sum -c - 
206+           curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.7.3 .0/cabal-plan-0.7.3 .0-x86_64-linux.xz > cabal-plan.xz 
207+           echo 'f62ccb2971567a5f638f2005ad3173dba14693a45154c1508645c52289714cb2   cabal-plan.xz' | sha256sum -c - 
193208          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan 
194209          rm -f cabal-plan.xz 
195210          chmod a+x $HOME/.cabal/bin/cabal-plan 
196211          cabal-plan --version 
197212       - name : checkout 
198-         uses : actions/checkout@v3  
213+         uses : actions/checkout@v4  
199214        with :
200215          path : source 
201216      - name : initial cabal.project for sdist 
@@ -223,6 +238,9 @@ jobs:
223238          if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "    ghc-options: -Werror=missing-methods" >> cabal.project ; fi 
224239          cat >> cabal.project <<EOF 
225240          EOF 
241+           if $HEADHACKAGE; then 
242+           echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project 
243+           fi 
226244          $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(HTTP)$/; }' >> cabal.project.local 
227245          cat cabal.project 
228246          cat cabal.project.local 
0 commit comments