Merge pull request #521 from well-typed/update-ci-conditionals #311
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This GitHub workflow config has been generated by a script via | |
| # | |
| # haskell-ci 'github' '--config=cabal.haskell-ci' 'cabal.project' | |
| # | |
| # To regenerate the script (for example after adjusting tested-with) run | |
| # | |
| # haskell-ci regenerate | |
| # | |
| # For more information, see https://github.com/haskell-CI/haskell-ci | |
| # | |
| # version: 0.19.20250630 | |
| # | |
| # REGENDATA ("0.19.20250630",["github","--config=cabal.haskell-ci","cabal.project"]) | |
| # | |
| name: Haskell-CI | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| branches: | |
| - master | |
| jobs: | |
| linux: | |
| name: Haskell-CI - Linux - ${{ matrix.compiler }} | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: | |
| 60 | |
| container: | |
| image: buildpack-deps:focal | |
| continue-on-error: ${{ matrix.allow-failure }} | |
| strategy: | |
| matrix: | |
| include: | |
| - compiler: ghc-9.12.2 | |
| compilerKind: ghc | |
| compilerVersion: 9.12.2 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-9.10.2 | |
| compilerKind: ghc | |
| compilerVersion: 9.10.2 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-9.8.4 | |
| compilerKind: ghc | |
| compilerVersion: 9.8.4 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-9.6.7 | |
| compilerKind: ghc | |
| compilerVersion: 9.6.7 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-9.4.8 | |
| compilerKind: ghc | |
| compilerVersion: 9.4.8 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-9.2.8 | |
| compilerKind: ghc | |
| compilerVersion: 9.2.8 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-9.0.2 | |
| compilerKind: ghc | |
| compilerVersion: 9.0.2 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-8.10.7 | |
| compilerKind: ghc | |
| compilerVersion: 8.10.7 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-8.8.4 | |
| compilerKind: ghc | |
| compilerVersion: 8.8.4 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-8.6.5 | |
| compilerKind: ghc | |
| compilerVersion: 8.6.5 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-8.4.4 | |
| compilerKind: ghc | |
| compilerVersion: 8.4.4 | |
| setup-method: ghcup | |
| allow-failure: false | |
| - compiler: ghc-8.2.2 | |
| compilerKind: ghc | |
| compilerVersion: 8.2.2 | |
| setup-method: ghcup | |
| allow-failure: false | |
| fail-fast: false | |
| steps: | |
| - name: apt-get install | |
| run: | | |
| apt-get update | |
| apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev | |
| - name: Install GHCup | |
| run: | | |
| mkdir -p "$HOME/.ghcup/bin" | |
| curl -sL https://downloads.haskell.org/ghcup/0.1.50.1/x86_64-linux-ghcup-0.1.50.1 > "$HOME/.ghcup/bin/ghcup" | |
| chmod a+x "$HOME/.ghcup/bin/ghcup" | |
| - name: Install cabal-install | |
| run: | | |
| "$HOME/.ghcup/bin/ghcup" install cabal 3.14.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false) | |
| echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.2.0 -vnormal+nowrap" >> "$GITHUB_ENV" | |
| - name: Install GHC (GHCup) | |
| if: matrix.setup-method == 'ghcup' | |
| run: | | |
| "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false) | |
| HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER") | |
| HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#') | |
| HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#') | |
| echo "HC=$HC" >> "$GITHUB_ENV" | |
| echo "HCPKG=$HCPKG" >> "$GITHUB_ENV" | |
| echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV" | |
| env: | |
| HCKIND: ${{ matrix.compilerKind }} | |
| HCNAME: ${{ matrix.compiler }} | |
| HCVER: ${{ matrix.compilerVersion }} | |
| - name: Set PATH and environment variables | |
| run: | | |
| echo "$HOME/.cabal/bin" >> $GITHUB_PATH | |
| echo "LANG=C.UTF-8" >> "$GITHUB_ENV" | |
| echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV" | |
| echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV" | |
| HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))') | |
| echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV" | |
| echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV" | |
| if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 90600)) -ne 0 ] ; then echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV" ; else echo "ARG_BENCH=--disable-benchmarks" >> "$GITHUB_ENV" ; fi | |
| echo "HEADHACKAGE=false" >> "$GITHUB_ENV" | |
| echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV" | |
| env: | |
| HCKIND: ${{ matrix.compilerKind }} | |
| HCNAME: ${{ matrix.compiler }} | |
| HCVER: ${{ matrix.compilerVersion }} | |
| - name: env | |
| run: | | |
| env | |
| - name: write cabal config | |
| run: | | |
| mkdir -p $CABAL_DIR | |
| cat >> $CABAL_CONFIG <<EOF | |
| remote-build-reporting: anonymous | |
| write-ghc-environment-files: never | |
| remote-repo-cache: $CABAL_DIR/packages | |
| logs-dir: $CABAL_DIR/logs | |
| world-file: $CABAL_DIR/world | |
| extra-prog-path: $CABAL_DIR/bin | |
| symlink-bindir: $CABAL_DIR/bin | |
| installdir: $CABAL_DIR/bin | |
| build-summary: $CABAL_DIR/logs/build.log | |
| store-dir: $CABAL_DIR/store | |
| install-dirs user | |
| prefix: $CABAL_DIR | |
| repository hackage.haskell.org | |
| url: http://hackage.haskell.org/ | |
| EOF | |
| cat >> $CABAL_CONFIG <<EOF | |
| program-default-options | |
| ghc-options: $GHCJOBS +RTS -M3G -RTS | |
| EOF | |
| cat $CABAL_CONFIG | |
| - name: versions | |
| run: | | |
| $HC --version || true | |
| $HC --print-project-git-commit-id || true | |
| $CABAL --version || true | |
| - name: update cabal index | |
| run: | | |
| $CABAL v2-update -v | |
| - name: cache (tools) | |
| uses: actions/cache/restore@v4 | |
| with: | |
| key: ${{ runner.os }}-${{ matrix.compiler }}-tools-55831830 | |
| path: ~/.haskell-ci-tools | |
| - name: install cabal-plan | |
| run: | | |
| mkdir -p $HOME/.cabal/bin | |
| 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 | |
| echo 'f62ccb2971567a5f638f2005ad3173dba14693a45154c1508645c52289714cb2 cabal-plan.xz' | sha256sum -c - | |
| xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan | |
| rm -f cabal-plan.xz | |
| chmod a+x $HOME/.cabal/bin/cabal-plan | |
| cabal-plan --version | |
| - name: install doctest | |
| run: | | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then $CABAL --store-dir=$HOME/.haskell-ci-tools/store v2-install $ARG_COMPILER --ignore-project -j2 doctest --constraint='doctest ^>=0.22.0' ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then doctest --version ; fi | |
| - name: save cache (tools) | |
| if: always() | |
| uses: actions/cache/save@v4 | |
| with: | |
| key: ${{ runner.os }}-${{ matrix.compiler }}-tools-55831830 | |
| path: ~/.haskell-ci-tools | |
| - name: checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| path: source | |
| - name: initial cabal.project for sdist | |
| run: | | |
| touch cabal.project | |
| echo "packages: $GITHUB_WORKSPACE/source/optics" >> cabal.project | |
| echo "packages: $GITHUB_WORKSPACE/source/optics-core" >> cabal.project | |
| echo "packages: $GITHUB_WORKSPACE/source/optics-extra" >> cabal.project | |
| echo "packages: $GITHUB_WORKSPACE/source/optics-sop" >> cabal.project | |
| echo "packages: $GITHUB_WORKSPACE/source/optics-th" >> cabal.project | |
| echo "packages: $GITHUB_WORKSPACE/source/optics-vl" >> cabal.project | |
| echo "packages: $GITHUB_WORKSPACE/source/indexed-profunctors" >> cabal.project | |
| echo "packages: $GITHUB_WORKSPACE/source/metametapost" >> cabal.project | |
| if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91200)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/template-haskell-optics" >> cabal.project ; fi | |
| cat cabal.project | |
| - name: sdist | |
| run: | | |
| mkdir -p sdist | |
| $CABAL sdist all --output-dir $GITHUB_WORKSPACE/sdist | |
| - name: unpack | |
| run: | | |
| mkdir -p unpacked | |
| find sdist -maxdepth 1 -type f -name '*.tar.gz' -exec tar -C $GITHUB_WORKSPACE/unpacked -xzvf {} \; | |
| - name: generate cabal.project | |
| run: | | |
| PKGDIR_optics="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/optics-[0-9.]*')" | |
| echo "PKGDIR_optics=${PKGDIR_optics}" >> "$GITHUB_ENV" | |
| PKGDIR_optics_core="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/optics-core-[0-9.]*')" | |
| echo "PKGDIR_optics_core=${PKGDIR_optics_core}" >> "$GITHUB_ENV" | |
| PKGDIR_optics_extra="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/optics-extra-[0-9.]*')" | |
| echo "PKGDIR_optics_extra=${PKGDIR_optics_extra}" >> "$GITHUB_ENV" | |
| PKGDIR_optics_sop="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/optics-sop-[0-9.]*')" | |
| echo "PKGDIR_optics_sop=${PKGDIR_optics_sop}" >> "$GITHUB_ENV" | |
| PKGDIR_optics_th="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/optics-th-[0-9.]*')" | |
| echo "PKGDIR_optics_th=${PKGDIR_optics_th}" >> "$GITHUB_ENV" | |
| PKGDIR_optics_vl="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/optics-vl-[0-9.]*')" | |
| echo "PKGDIR_optics_vl=${PKGDIR_optics_vl}" >> "$GITHUB_ENV" | |
| PKGDIR_indexed_profunctors="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/indexed-profunctors-[0-9.]*')" | |
| echo "PKGDIR_indexed_profunctors=${PKGDIR_indexed_profunctors}" >> "$GITHUB_ENV" | |
| PKGDIR_metametapost="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/metametapost-[0-9.]*')" | |
| echo "PKGDIR_metametapost=${PKGDIR_metametapost}" >> "$GITHUB_ENV" | |
| PKGDIR_template_haskell_optics="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/template-haskell-optics-[0-9.]*')" | |
| echo "PKGDIR_template_haskell_optics=${PKGDIR_template_haskell_optics}" >> "$GITHUB_ENV" | |
| rm -f cabal.project cabal.project.local | |
| touch cabal.project | |
| touch cabal.project.local | |
| echo "packages: ${PKGDIR_optics}" >> cabal.project | |
| echo "packages: ${PKGDIR_optics_core}" >> cabal.project | |
| echo "packages: ${PKGDIR_optics_extra}" >> cabal.project | |
| echo "packages: ${PKGDIR_optics_sop}" >> cabal.project | |
| echo "packages: ${PKGDIR_optics_th}" >> cabal.project | |
| echo "packages: ${PKGDIR_optics_vl}" >> cabal.project | |
| echo "packages: ${PKGDIR_indexed_profunctors}" >> cabal.project | |
| echo "packages: ${PKGDIR_metametapost}" >> cabal.project | |
| if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91200)) -ne 0 ] ; then echo "packages: ${PKGDIR_template_haskell_optics}" >> cabal.project ; fi | |
| echo "package optics" >> cabal.project | |
| echo " ghc-options: -Werror=missing-methods" >> cabal.project | |
| echo "package optics-core" >> cabal.project | |
| echo " ghc-options: -Werror=missing-methods" >> cabal.project | |
| echo "package optics-extra" >> cabal.project | |
| echo " ghc-options: -Werror=missing-methods" >> cabal.project | |
| echo "package optics-sop" >> cabal.project | |
| echo " ghc-options: -Werror=missing-methods" >> cabal.project | |
| echo "package optics-th" >> cabal.project | |
| echo " ghc-options: -Werror=missing-methods" >> cabal.project | |
| echo "package optics-vl" >> cabal.project | |
| echo " ghc-options: -Werror=missing-methods" >> cabal.project | |
| echo "package indexed-profunctors" >> cabal.project | |
| echo " ghc-options: -Werror=missing-methods" >> cabal.project | |
| echo "package metametapost" >> cabal.project | |
| echo " ghc-options: -Werror=missing-methods" >> cabal.project | |
| if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91200)) -ne 0 ] ; then echo "package template-haskell-optics" >> cabal.project ; fi | |
| if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi | |
| cat >> cabal.project <<EOF | |
| EOF | |
| $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(indexed-profunctors|metametapost|optics|optics-core|optics-extra|optics-sop|optics-th|optics-vl|template-haskell-optics)$/; }' >> cabal.project.local | |
| cat cabal.project | |
| cat cabal.project.local | |
| - name: dump install plan | |
| run: | | |
| $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all | |
| cabal-plan | |
| - name: restore cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} | |
| path: ~/.cabal/store | |
| restore-keys: ${{ runner.os }}-${{ matrix.compiler }}- | |
| - name: install dependencies | |
| run: | | |
| $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --dependencies-only -j2 all | |
| $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dependencies-only -j2 all | |
| - name: build w/o tests | |
| run: | | |
| $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all | |
| - name: build | |
| run: | | |
| $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --write-ghc-environment-files=always | |
| - name: tests | |
| run: | | |
| if [ $((! GHCJSARITH)) -ne 0 ] ; then $CABAL v2-test $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --test-show-details=direct ; fi | |
| - name: doctest | |
| run: | | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then cd ${PKGDIR_optics} || false ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then doctest -XHaskell2010 -XBangPatterns -XConstraintKinds -XDefaultSignatures -XDeriveFoldable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XEmptyCase -XFlexibleContexts -XFlexibleInstances -XFunctionalDependencies -XGADTs -XGeneralizedNewtypeDeriving -XInstanceSigs -XKindSignatures -XLambdaCase -XOverloadedLabels -XPatternSynonyms -XRankNTypes -XScopedTypeVariables -XTupleSections -XTypeApplications -XTypeFamilies -XTypeOperators -XViewPatterns src ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then cd ${PKGDIR_optics_core} || false ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then doctest -XHaskell2010 -XBangPatterns -XConstraintKinds -XDefaultSignatures -XDeriveFoldable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XEmptyCase -XFlexibleContexts -XFlexibleInstances -XFunctionalDependencies -XGADTs -XGeneralizedNewtypeDeriving -XInstanceSigs -XKindSignatures -XLambdaCase -XOverloadedLabels -XPatternSynonyms -XRankNTypes -XScopedTypeVariables -XTupleSections -XTypeApplications -XTypeFamilies -XTypeOperators -XViewPatterns src ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then cd ${PKGDIR_optics_extra} || false ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then doctest -XHaskell2010 -XBangPatterns -XConstraintKinds -XDefaultSignatures -XDeriveFoldable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XEmptyCase -XFlexibleContexts -XFlexibleInstances -XFunctionalDependencies -XGADTs -XGeneralizedNewtypeDeriving -XInstanceSigs -XKindSignatures -XLambdaCase -XOverloadedLabels -XPatternSynonyms -XRankNTypes -XScopedTypeVariables -XTupleSections -XTypeApplications -XTypeFamilies -XTypeOperators -XViewPatterns src ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then cd ${PKGDIR_optics_sop} || false ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then doctest -XHaskell2010 -XBangPatterns -XConstraintKinds -XDefaultSignatures -XDeriveFoldable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XEmptyCase -XFlexibleContexts -XFlexibleInstances -XFunctionalDependencies -XGADTs -XGeneralizedNewtypeDeriving -XInstanceSigs -XKindSignatures -XLambdaCase -XOverloadedLabels -XPatternSynonyms -XRankNTypes -XScopedTypeVariables -XTupleSections -XTypeApplications -XTypeFamilies -XTypeOperators -XViewPatterns src ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then cd ${PKGDIR_optics_th} || false ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then doctest -XHaskell2010 -XBangPatterns -XConstraintKinds -XDefaultSignatures -XDeriveFoldable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XEmptyCase -XFlexibleContexts -XFlexibleInstances -XFunctionalDependencies -XGADTs -XGeneralizedNewtypeDeriving -XInstanceSigs -XKindSignatures -XLambdaCase -XOverloadedLabels -XPatternSynonyms -XRankNTypes -XScopedTypeVariables -XTupleSections -XTypeApplications -XTypeFamilies -XTypeOperators -XViewPatterns src ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then cd ${PKGDIR_optics_vl} || false ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then doctest -XHaskell2010 -XBangPatterns -XConstraintKinds -XDefaultSignatures -XDeriveFoldable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XEmptyCase -XFlexibleContexts -XFlexibleInstances -XFunctionalDependencies -XGADTs -XGeneralizedNewtypeDeriving -XInstanceSigs -XKindSignatures -XLambdaCase -XOverloadedLabels -XPatternSynonyms -XRankNTypes -XScopedTypeVariables -XTupleSections -XTypeApplications -XTypeFamilies -XTypeOperators -XViewPatterns src ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then cd ${PKGDIR_indexed_profunctors} || false ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then doctest -XHaskell2010 -XBangPatterns -XConstraintKinds -XDefaultSignatures -XDeriveFoldable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XEmptyCase -XFlexibleContexts -XFlexibleInstances -XFunctionalDependencies -XGADTs -XGeneralizedNewtypeDeriving -XInstanceSigs -XKindSignatures -XLambdaCase -XOverloadedLabels -XPatternSynonyms -XRankNTypes -XScopedTypeVariables -XTupleSections -XTypeApplications -XTypeFamilies -XTypeOperators -XViewPatterns src ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then cd ${PKGDIR_template_haskell_optics} || false ; fi | |
| if [ $((! GHCJSARITH && HCNUMVER < 90400)) -ne 0 ] ; then doctest -XHaskell2010 src ; fi | |
| - name: cabal check | |
| run: | | |
| cd ${PKGDIR_optics} || false | |
| ${CABAL} -vnormal check | |
| cd ${PKGDIR_optics_core} || false | |
| ${CABAL} -vnormal check | |
| cd ${PKGDIR_optics_extra} || false | |
| ${CABAL} -vnormal check | |
| cd ${PKGDIR_optics_sop} || false | |
| ${CABAL} -vnormal check | |
| cd ${PKGDIR_optics_th} || false | |
| ${CABAL} -vnormal check | |
| cd ${PKGDIR_optics_vl} || false | |
| ${CABAL} -vnormal check | |
| cd ${PKGDIR_indexed_profunctors} || false | |
| ${CABAL} -vnormal check | |
| cd ${PKGDIR_metametapost} || false | |
| ${CABAL} -vnormal check | |
| if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91200)) -ne 0 ] ; then cd ${PKGDIR_template_haskell_optics} || false ; fi | |
| if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91200)) -ne 0 ] ; then ${CABAL} -vnormal check ; fi | |
| - name: haddock | |
| run: | | |
| if [ $((! GHCJSARITH)) -ne 0 ] ; then $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all ; fi | |
| - name: unconstrained build | |
| run: | | |
| rm -f cabal.project.local | |
| $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all | |
| - name: save cache | |
| if: always() | |
| uses: actions/cache/save@v4 | |
| with: | |
| key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} | |
| path: ~/.cabal/store |