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.16.4
11+ # version: 0.17.20230928
1212#
13- # REGENDATA ("0.16.4 ",["--config=cabal.haskell-ci","github","cabal.project"])
13+ # REGENDATA ("0.17.20230928 ",["--config=cabal.haskell-ci","github","cabal.project"])
1414#
1515name : Haskell-CI
1616on :
1717 push :
1818 branches :
1919 - master
20- - ci*
2120 pull_request :
2221 branches :
2322 - master
24- - ci*
2523jobs :
2624 linux :
2725 name : Haskell-CI - Linux - ${{ matrix.compiler }}
2826 runs-on : ubuntu-20.04
2927 timeout-minutes :
3028 60
3129 container :
32- image : buildpack-deps:bionic
30+ image : buildpack-deps:focal
3331 continue-on-error : ${{ matrix.allow-failure }}
3432 strategy :
3533 matrix :
3634 include :
37- - compiler : ghc-9.6.2
35+ - compiler : ghc-9.8.0.20230919
3836 compilerKind : ghc
39- compilerVersion : 9.6.2
37+ compilerVersion : 9.8.0.20230919
38+ setup-method : ghcup
39+ allow-failure : true
40+ - compiler : ghc-9.6.3
41+ compilerKind : ghc
42+ compilerVersion : 9.6.3
4043 setup-method : ghcup
4144 allow-failure : false
42- - compiler : ghc-9.4.5
45+ - compiler : ghc-9.4.7
4346 compilerKind : ghc
44- compilerVersion : 9.4.5
47+ compilerVersion : 9.4.7
4548 setup-method : ghcup
4649 allow-failure : false
4750 - compiler : ghc-9.2.8
8992 compilerVersion : 7.10.3
9093 setup-method : hvr-ppa
9194 allow-failure : false
92- - compiler : ghc-7.8.4
93- compilerKind : ghc
94- compilerVersion : 7.8.4
95- setup-method : hvr-ppa
96- allow-failure : false
9795 fail-fast : false
9896 steps :
9997 - name : apt
@@ -102,17 +100,19 @@ jobs:
102100 apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
103101 if [ "${{ matrix.setup-method }}" = ghcup ]; then
104102 mkdir -p "$HOME/.ghcup/bin"
105- 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"
106104 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;
107106 "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
108107 "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
109108 else
110109 apt-add-repository -y 'ppa:hvr/ghc'
111110 apt-get update
112111 apt-get install -y "$HCNAME"
113112 mkdir -p "$HOME/.ghcup/bin"
114- 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"
115114 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;
116116 "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
117117 fi
118118 env :
@@ -127,10 +127,12 @@ jobs:
127127 echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
128128 HCDIR=/opt/$HCKIND/$HCVER
129129 if [ "${{ matrix.setup-method }}" = ghcup ]; then
130- 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#')
131133 echo "HC=$HC" >> "$GITHUB_ENV"
132- echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER " >> "$GITHUB_ENV"
133- echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER " >> "$GITHUB_ENV"
134+ echo "HCPKG=$HCPKG " >> "$GITHUB_ENV"
135+ echo "HADDOCK=$HADDOCK " >> "$GITHUB_ENV"
134136 echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
135137 else
136138 HC=$HCDIR/bin/$HCKIND
@@ -144,7 +146,7 @@ jobs:
144146 echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
145147 echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
146148 echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
147- echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
149+ if [ $((HCNUMVER >= 90800)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE= false" >> "$GITHUB_ENV" ; fi
148150 echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
149151 echo "GHCJSARITH=0" >> "$GITHUB_ENV"
150152 env :
@@ -173,6 +175,18 @@ jobs:
173175 repository hackage.haskell.org
174176 url: http://hackage.haskell.org/
175177 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
176190 cat >> $CABAL_CONFIG <<EOF
177191 program-default-options
178192 ghc-options: $GHCJOBS +RTS -M3G -RTS
@@ -196,7 +210,7 @@ jobs:
196210 chmod a+x $HOME/.cabal/bin/cabal-plan
197211 cabal-plan --version
198212 - name : checkout
199- uses : actions/checkout@v3
213+ uses : actions/checkout@v4
200214 with :
201215 path : source
202216 - name : initial cabal.project for sdist
@@ -233,7 +247,11 @@ jobs:
233247 constraints: github-samples +openssl
234248 constraints: operational -buildExamples
235249 optimization: False
250+ allow-newer: containers
236251 EOF
252+ if $HEADHACKAGE; then
253+ echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
254+ fi
237255 $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(github|github-samples)$/; }' >> cabal.project.local
238256 cat cabal.project
239257 cat cabal.project.local
@@ -273,6 +291,16 @@ jobs:
273291 run : |
274292 rm -f cabal.project.local
275293 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
294+ - name : prepare for constraint sets
295+ run : |
296+ rm -f cabal.project.local
297+ - name : constraint set containers-0.7
298+ run : |
299+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' all --dry-run ; fi
300+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then cabal-plan topo | sort ; fi
301+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' --dependencies-only -j2 all ; fi
302+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' all ; fi
303+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then $CABAL v2-test $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' all ; fi
276304 - name : save cache
277305 uses : actions/cache/save@v3
278306 if : always()
0 commit comments