@@ -30,16 +30,6 @@ jobs:
3030 strategy:
3131 matrix:
3232 include:
33− - compiler: ghc-9.2.0.20210422
34− compilerKind: ghc
35− compilerVersion: 9.2.0.20210422
36− setup-method: ghcup
37− allow-failure: true
38− - compiler: ghc-9.0.1
39− compilerKind: ghc
40− compilerVersion: 9.0.1
41− setup-method: hvr-ppa
42− allow-failure: false
4333 - compiler: ghc-8.10.4
4434 compilerKind: ghc
4535 compilerVersion: 8.10.4
@@ -55,38 +45,15 @@ jobs:
5545 compilerVersion: 8.6.5
5646 setup-method: hvr-ppa
5747 allow-failure: false
58− - compiler: ghc-8.4.4
59− compilerKind: ghc
60− compilerVersion: 8.4.4
61− setup-method: hvr-ppa
62− allow-failure: false
63− - compiler: ghc-8.2.2
64− compilerKind: ghc
65− compilerVersion: 8.2.2
66− setup-method: hvr-ppa
67− allow-failure: false
68− - compiler: ghc-8.0.2
69− compilerKind: ghc
70− compilerVersion: 8.0.2
71− setup-method: hvr-ppa
72− allow-failure: false
7348 fail-fast: false
7449 steps:
7550 - name: apt
7651 run: |
7752 apt-get update
7853 apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
79− if [ "${{ matrix.setup-method }}" = ghcup ]; then
80− mkdir -p "$HOME/.ghcup/bin"
81− curl -sL https://downloads.haskell.org/ghcup/0.1.14.1/x86_64-linux-ghcup-0.1.14.1 > "$HOME/.ghcup/bin/ghcup"
82− chmod a+x "$HOME/.ghcup/bin/ghcup"
83− "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER"
84− "$HOME/.ghcup/bin/ghcup" install cabal 3.4.0.0
85− else
86− apt-add-repository -y 'ppa:hvr/ghc'
87− apt-get update
88− apt-get install -y "$HCNAME" cabal-install-3.4
89− fi
54+ apt-add-repository -y 'ppa:hvr/ghc'
55+ apt-get update
56+ apt-get install -y "$HCNAME" cabal-install-3.4
9057 env:
9158 HCKIND: ${{ matrix.compilerKind }}
9259 HCNAME: ${{ matrix.compiler }}
@@ -98,25 +65,16 @@ jobs:
9865 echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
9966 echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
10067 HCDIR=/opt/$HCKIND/$HCVER
101− if [ "${{ matrix.setup-method }}" = ghcup ]; then
102− HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
103− echo "HC=$HC" >> "$GITHUB_ENV"
104− echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
105− echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
106− echo "CABAL=$HOME/.ghcup/bin/cabal-3.4.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
107− else
108− HC=$HCDIR/bin/$HCKIND
109− echo "HC=$HC" >> "$GITHUB_ENV"
110− echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
111− echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
112− echo "CABAL=/opt/cabal/3.4/bin/cabal -vnormal+nowrap" >> "$GITHUB_ENV"
113− fi
114−
68+ HC=$HCDIR/bin/$HCKIND
69+ echo "HC=$HC" >> "$GITHUB_ENV"
70+ echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
71+ echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
72+ echo "CABAL=/opt/cabal/3.4/bin/cabal -vnormal+nowrap" >> "$GITHUB_ENV"
11573 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
11674 echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
11775 echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
11876 echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
119− if [ $((HCNUMVER >= 90200)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE=false" >> "$GITHUB_ENV" ; fi
77+ echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
12078 echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
12179 echo "GHCJSARITH=0" >> "$GITHUB_ENV"
12280 env:
@@ -145,17 +103,6 @@ jobs:
145103 repository hackage.haskell.org
146104 url: http://hackage.haskell.org/
147105 EOF
148− if $HEADHACKAGE; then
149− cat >> $CABAL_CONFIG <<EOF
150− repository head.hackage.ghc.haskell.org
151− url: https://ghc.gitlab.haskell.org/head.hackage/
152− secure: True
153− root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
154− 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
155− f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
156− key-threshold: 3
157− EOF
158− fi
159106 cat $CABAL_CONFIG
160107 - name: versions
161108 run: |
@@ -181,8 +128,8 @@ jobs:
181128 cabal-plan --version
182129 - name: install doctest
183130 run: |
184− if [ $((HCNUMVER < 90000)) -ne 0 ] ; then $CABAL --store-dir=$HOME/.haskell-ci-tools/store v2-install $ARG_COMPILER --ignore-project -j2 doctest --constraint='doctest ^>=0.17' ; fi
185− if [ $((HCNUMVER < 90000)) -ne 0 ] ; then doctest --version ; fi
131+ $CABAL --store-dir=$HOME/.haskell-ci-tools/store v2-install $ARG_COMPILER --ignore-project -j2 doctest --constraint='doctest ^>=0.17'
132+ doctest --version
186133 - name: checkout
187134 uses: actions/checkout@v2
188135 with:
@@ -208,13 +155,10 @@ jobs:
208155 touch cabal.project
209156 touch cabal.project.local
210157 echo "packages: ${PKGDIR_effectful}" >> cabal.project
211− if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package effectful" >> cabal.project ; fi
212− if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
158+ echo "package effectful" >> cabal.project
159+ echo " ghc-options: -Werror=missing-methods" >> cabal.project
213160 cat >> cabal.project <<EOF
214161 EOF
215− if $HEADHACKAGE; then
216− echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
217− fi
218162 $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(effectful)$/; }' >> cabal.project.local
219163 cat cabal.project
220164 cat cabal.project.local
@@ -243,8 +187,8 @@ jobs:
243187 $CABAL v2-test $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --test-show-details=direct
244188 - name: doctest
245189 run: |
246− if [ $((HCNUMVER < 90000)) -ne 0 ] ; then cd ${PKGDIR_effectful} || false ; fi
247− if [ $((HCNUMVER < 90000)) -ne 0 ] ; then doctest -XBangPatterns -XConstraintKinds -XDataKinds -XDefaultSignatures -XDeriveFunctor -XFlexibleContexts -XFlexibleInstances -XGADTs -XGeneralizedNewtypeDeriving -XLambdaCase -XNamedFieldPuns -XMultiParamTypeClasses -XRankNTypes -XRecordWildCards -XRoleAnnotations -XScopedTypeVariables -XStrictData -XTupleSections -XTypeApplications -XTypeInType -XTypeFamilies -XTypeOperators src ; fi
190+ cd ${PKGDIR_effectful} || false
191+ doctest -XBangPatterns -XConstraintKinds -XDataKinds -XFlexibleContexts -XFlexibleInstances -XGADTs -XLambdaCase -XMultiParamTypeClasses -XRankNTypes -XRecordWildCards -XRoleAnnotations -XScopedTypeVariables -XStrictData -XTupleSections -XTypeApplications -XTypeFamilies -XTypeOperators src
248192 - name: cabal check
249193 run: |
250194 cd ${PKGDIR_effectful} || false