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.12.1
11+ # version: 0.17.20230928
1212#
13- # REGENDATA ("0.12.1 ",["github","parallel.cabal"])
13+ # REGENDATA ("0.17.20230928 ",["github","parallel.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 }}
22- runs-on : ubuntu-18.04
26+ runs-on : ubuntu-20.04
27+ timeout-minutes :
28+ 60
2329 container :
24- image : buildpack-deps:xenial
30+ image : buildpack-deps:focal
2531 continue-on-error : ${{ matrix.allow-failure }}
2632 strategy :
2733 matrix :
2834 include :
29- - compiler : ghc-9.6.1
35+ - compiler : ghc-9.8.0.20230919
36+ compilerKind : ghc
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
43+ setup-method : ghcup
3044 allow-failure : false
31- - compiler : ghc-9.0.1
45+ - compiler : ghc-9.4.7
46+ compilerKind : ghc
47+ compilerVersion : 9.4.7
48+ setup-method : ghcup
3249 allow-failure : false
33- - compiler : ghc-8.10.4
50+ - compiler : ghc-9.2.8
51+ compilerKind : ghc
52+ compilerVersion : 9.2.8
53+ setup-method : ghcup
3454 allow-failure : false
35- - compiler : ghc-8.8.3
55+ - compiler : ghc-9.0.2
56+ compilerKind : ghc
57+ compilerVersion : 9.0.2
58+ setup-method : ghcup
59+ allow-failure : false
60+ - compiler : ghc-8.10.7
61+ compilerKind : ghc
62+ compilerVersion : 8.10.7
63+ setup-method : ghcup
64+ allow-failure : false
65+ - compiler : ghc-8.8.4
66+ compilerKind : ghc
67+ compilerVersion : 8.8.4
68+ setup-method : hvr-ppa
3669 allow-failure : false
3770 - compiler : ghc-8.6.5
71+ compilerKind : ghc
72+ compilerVersion : 8.6.5
73+ setup-method : hvr-ppa
3874 allow-failure : false
3975 - compiler : ghc-8.4.4
76+ compilerKind : ghc
77+ compilerVersion : 8.4.4
78+ setup-method : hvr-ppa
4079 allow-failure : false
4180 - compiler : ghc-8.2.2
81+ compilerKind : ghc
82+ compilerVersion : 8.2.2
83+ setup-method : hvr-ppa
4284 allow-failure : false
4385 - compiler : ghc-8.0.2
86+ compilerKind : ghc
87+ compilerVersion : 8.0.2
88+ setup-method : hvr-ppa
4489 allow-failure : false
4590 - compiler : ghc-7.10.3
46- allow-failure : false
47- - compiler : ghc-7.8.4
48- allow-failure : false
49- - compiler : ghc-7.6.3
50- allow-failure : false
51- - compiler : ghc-7.4.2
52- allow-failure : false
53- - compiler : ghc-7.2.2
54- allow-failure : false
55- - compiler : ghc-7.0.4
91+ compilerKind : ghc
92+ compilerVersion : 7.10.3
93+ setup-method : hvr-ppa
5694 allow-failure : false
5795 fail-fast : false
5896 steps :
5997 - name : apt
6098 run : |
6199 apt-get update
62- apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common
63- apt-add-repository -y 'ppa:hvr/ghc'
64- apt-get update
65- apt-get install -y $CC cabal-install-3.4
100+ apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
101+ if [ "${{ matrix.setup-method }}" = ghcup ]; then
102+ mkdir -p "$HOME/.ghcup/bin"
103+ curl -sL https://downloads.haskell.org/ghcup/0.1.19.5/x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
104+ 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;
106+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
107+ "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
108+ else
109+ apt-add-repository -y 'ppa:hvr/ghc'
110+ apt-get update
111+ apt-get install -y "$HCNAME"
112+ mkdir -p "$HOME/.ghcup/bin"
113+ curl -sL https://downloads.haskell.org/ghcup/0.1.19.5/x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
114+ 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;
116+ "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
117+ fi
66118 env :
67- CC : ${{ matrix.compiler }}
119+ HCKIND : ${{ matrix.compilerKind }}
120+ HCNAME : ${{ matrix.compiler }}
121+ HCVER : ${{ matrix.compilerVersion }}
68122 - name : Set PATH and environment variables
69123 run : |
70124 echo "$HOME/.cabal/bin" >> $GITHUB_PATH
71- echo "LANG=C.UTF-8" >> $GITHUB_ENV
72- echo "CABAL_DIR=$HOME/.cabal" >> $GITHUB_ENV
73- echo "CABAL_CONFIG=$HOME/.cabal/config" >> $GITHUB_ENV
74- HCDIR=$(echo "/opt/$CC" | sed 's/-/\//')
75- HCNAME=ghc
76- HC=$HCDIR/bin/$HCNAME
77- echo "HC=$HC" >> $GITHUB_ENV
78- echo "HCPKG=$HCDIR/bin/$HCNAME-pkg" >> $GITHUB_ENV
79- echo "HADDOCK=$HCDIR/bin/haddock" >> $GITHUB_ENV
80- echo "CABAL=/opt/cabal/3.4/bin/cabal -vnormal+nowrap" >> $GITHUB_ENV
125+ echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
126+ echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
127+ echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
128+ HCDIR=/opt/$HCKIND/$HCVER
129+ if [ "${{ matrix.setup-method }}" = ghcup ]; then
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#')
133+ echo "HC=$HC" >> "$GITHUB_ENV"
134+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
135+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
136+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
137+ else
138+ HC=$HCDIR/bin/$HCKIND
139+ echo "HC=$HC" >> "$GITHUB_ENV"
140+ echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
141+ echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
142+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
143+ fi
144+
81145 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
82- echo "HCNUMVER=$HCNUMVER" >> $GITHUB_ENV
83- echo "ARG_TESTS=--enable-tests" >> $GITHUB_ENV
84- echo "ARG_BENCH=--enable-benchmarks" >> $GITHUB_ENV
85- if [ $((HCNUMVER > 90001 )) -ne 0 ] ; then echo "HEADHACKAGE=true" >> $GITHUB_ENV ; else echo "HEADHACKAGE=false" >> $GITHUB_ENV ; fi
86- echo "ARG_COMPILER=--$HCNAME --with-compiler=$HC" >> $GITHUB_ENV
87- echo "GHCJSARITH=0" >> $GITHUB_ENV
146+ echo "HCNUMVER=$HCNUMVER" >> " $GITHUB_ENV"
147+ echo "ARG_TESTS=--enable-tests" >> " $GITHUB_ENV"
148+ echo "ARG_BENCH=--enable-benchmarks" >> " $GITHUB_ENV"
149+ if [ $((HCNUMVER >= 90800 )) -ne 0 ] ; then echo "HEADHACKAGE=true" >> " $GITHUB_ENV" ; else echo "HEADHACKAGE=false" >> " $GITHUB_ENV" ; fi
150+ echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> " $GITHUB_ENV"
151+ echo "GHCJSARITH=0" >> " $GITHUB_ENV"
88152 env :
89- CC : ${{ matrix.compiler }}
153+ HCKIND : ${{ matrix.compilerKind }}
154+ HCNAME : ${{ matrix.compiler }}
155+ HCVER : ${{ matrix.compilerVersion }}
90156 - name : env
91157 run : |
92158 env
@@ -118,8 +184,13 @@ jobs:
118184 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
119185 f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
120186 key-threshold: 3
187+ active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override
121188 EOF
122189 fi
190+ cat >> $CABAL_CONFIG <<EOF
191+ program-default-options
192+ ghc-options: $GHCJOBS +RTS -M3G -RTS
193+ EOF
123194 cat $CABAL_CONFIG
124195 - name : versions
125196 run : |
@@ -132,14 +203,14 @@ jobs:
132203 - name : install cabal-plan
133204 run : |
134205 mkdir -p $HOME/.cabal/bin
135- 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
136- 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 -
137208 xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
138209 rm -f cabal-plan.xz
139210 chmod a+x $HOME/.cabal/bin/cabal-plan
140211 cabal-plan --version
141212 - name : checkout
142- uses : actions/checkout@v2
213+ uses : actions/checkout@v4
143214 with :
144215 path : source
145216 - name : initial cabal.project for sdist
@@ -158,7 +229,8 @@ jobs:
158229 - name : generate cabal.project
159230 run : |
160231 PKGDIR_parallel="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/parallel-[0-9.]*')"
161- echo "PKGDIR_parallel=${PKGDIR_parallel}" >> $GITHUB_ENV
232+ echo "PKGDIR_parallel=${PKGDIR_parallel}" >> "$GITHUB_ENV"
233+ rm -f cabal.project cabal.project.local
162234 touch cabal.project
163235 touch cabal.project.local
164236 echo "packages: ${PKGDIR_parallel}" >> cabal.project
@@ -176,8 +248,8 @@ jobs:
176248 run : |
177249 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
178250 cabal-plan
179- - name : cache
180- uses : actions/cache@v2
251+ - name : restore cache
252+ uses : actions/cache/restore@v3
181253 with :
182254 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
183255 path : ~/.cabal/store
@@ -198,8 +270,23 @@ jobs:
198270 ${CABAL} -vnormal check
199271 - name : haddock
200272 run : |
201- $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
273+ $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
202274 - name : unconstrained build
203275 run : |
204276 rm -f cabal.project.local
205277 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
278+ - name : prepare for constraint sets
279+ run : |
280+ rm -f cabal.project.local
281+ - name : constraint set containers-0.7
282+ run : |
283+ if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='containers ^>= 0.7' all --dry-run ; fi
284+ if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then cabal-plan topo | sort ; fi
285+ if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='containers ^>= 0.7' --dependencies-only -j2 all ; fi
286+ if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='containers ^>= 0.7' all ; fi
287+ - name : save cache
288+ uses : actions/cache/save@v3
289+ if : always()
290+ with :
291+ key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
292+ path : ~/.cabal/store
0 commit comments