Merge pull request #510 from well-typed/hashable-1.5 #281
This file contains 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.20240708 | |
# | |
# REGENDATA ("0.19.20240708",["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-20.04 | |
timeout-minutes: | |
60 | |
container: | |
image: buildpack-deps:focal | |
continue-on-error: ${{ matrix.allow-failure }} | |
strategy: | |
matrix: | |
include: | |
- compiler: ghcjs-8.4 | |
compilerKind: ghcjs | |
compilerVersion: "8.4" | |
setup-method: hvr-ppa | |
allow-failure: false | |
- compiler: ghc-9.10.1 | |
compilerKind: ghc | |
compilerVersion: 9.10.1 | |
setup-method: ghcup | |
allow-failure: false | |
- compiler: ghc-9.8.2 | |
compilerKind: ghc | |
compilerVersion: 9.8.2 | |
setup-method: ghcup | |
allow-failure: false | |
- compiler: ghc-9.6.5 | |
compilerKind: ghc | |
compilerVersion: 9.6.5 | |
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: hvr-ppa | |
allow-failure: false | |
- compiler: ghc-8.6.5 | |
compilerKind: ghc | |
compilerVersion: 8.6.5 | |
setup-method: hvr-ppa | |
allow-failure: false | |
- compiler: ghc-8.4.4 | |
compilerKind: ghc | |
compilerVersion: 8.4.4 | |
setup-method: hvr-ppa | |
allow-failure: false | |
- compiler: ghc-8.2.2 | |
compilerKind: ghc | |
compilerVersion: 8.2.2 | |
setup-method: hvr-ppa | |
allow-failure: false | |
fail-fast: false | |
steps: | |
- name: Set GHCJS environment variables | |
run: | | |
if [ $HCKIND = ghcjs ]; then | |
echo "GHCJS=true" >> "$GITHUB_ENV" | |
echo "GHCJSARITH=1" >> "$GITHUB_ENV" | |
else | |
echo "GHCJS=false" >> "$GITHUB_ENV" | |
echo "GHCJSARITH=0" >> "$GITHUB_ENV" | |
fi | |
env: | |
HCKIND: ${{ matrix.compilerKind }} | |
HCNAME: ${{ matrix.compiler }} | |
HCVER: ${{ matrix.compilerVersion }} | |
- name: apt | |
run: | | |
apt-get update | |
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 | |
if [ "${{ matrix.setup-method }}" = ghcup ]; then | |
mkdir -p "$HOME/.ghcup/bin" | |
curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup" | |
chmod a+x "$HOME/.ghcup/bin/ghcup" | |
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false) | |
"$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false) | |
else | |
apt-add-repository -y 'ppa:hvr/ghc' | |
if [ $((GHCJSARITH)) -ne 0 ] ; then apt-add-repository -y 'ppa:hvr/ghcjs' ; fi | |
if [ $((GHCJSARITH)) -ne 0 ] ; then curl -sSL "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" | apt-key add - ; fi | |
if [ $((GHCJSARITH)) -ne 0 ] ; then apt-add-repository -y 'deb https://deb.nodesource.com/node_10.x focal main' ; fi | |
apt-get update | |
if [ $((GHCJSARITH)) -ne 0 ] ; then apt-get install -y "$HCNAME" ghc-8.4.4 nodejs ; else apt-get install -y "$HCNAME" ; fi | |
mkdir -p "$HOME/.ghcup/bin" | |
curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup" | |
chmod a+x "$HOME/.ghcup/bin/ghcup" | |
"$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false) | |
fi | |
env: | |
HCKIND: ${{ matrix.compilerKind }} | |
HCNAME: ${{ matrix.compiler }} | |
HCVER: ${{ matrix.compilerVersion }} | |
- name: Set PATH and environment variables | |
run: | | |
echo "$HOME/.cabal/bin" >> $GITHUB_PATH | |
if [ $((GHCJSARITH)) -ne 0 ] ; then echo "/opt/ghc/8.4.4/bin" >> $GITHUB_PATH ; fi | |
echo "LANG=C.UTF-8" >> "$GITHUB_ENV" | |
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV" | |
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV" | |
HCDIR=/opt/$HCKIND/$HCVER | |
if [ "${{ matrix.setup-method }}" = ghcup ]; then | |
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" | |
echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV" | |
else | |
HC=$HCDIR/bin/$HCKIND | |
echo "HC=$HC" >> "$GITHUB_ENV" | |
echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV" | |
echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV" | |
echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV" | |
fi | |
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 | |
if [ $((GHCJSARITH)) -ne 0 ] ; then node --version ; fi | |
if [ $((GHCJSARITH)) -ne 0 ] ; then echo $GHCJS ; fi | |
- name: update cabal index | |
run: | | |
$CABAL v2-update -v | |
- name: cache (tools) | |
uses: actions/cache/restore@v4 | |
with: | |
key: ${{ runner.os }}-${{ matrix.compiler }}-tools-9f95e77c | |
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) | |
uses: actions/cache/save@v4 | |
if: always() | |
with: | |
key: ${{ runner.os }}-${{ matrix.compiler }}-tools-9f95e77c | |
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 | |
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91000)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/template-haskell-optics" >> cabal.project ; fi | |
echo "packages: $GITHUB_WORKSPACE/source/metametapost" >> cabal.project | |
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_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" | |
PKGDIR_metametapost="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/metametapost-[0-9.]*')" | |
echo "PKGDIR_metametapost=${PKGDIR_metametapost}" >> "$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 | |
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91000)) -ne 0 ] ; then echo "packages: ${PKGDIR_template_haskell_optics}" >> cabal.project ; fi | |
echo "packages: ${PKGDIR_metametapost}" >> cabal.project | |
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 | |
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91000)) -ne 0 ] ; then echo "package template-haskell-optics" >> cabal.project ; fi | |
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91000)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi | |
echo "package metametapost" >> cabal.project | |
echo " ghc-options: -Werror=missing-methods" >> cabal.project | |
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 | |
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91000)) -ne 0 ] ; then cd ${PKGDIR_template_haskell_optics} || false ; fi | |
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER < 91000)) -ne 0 ] ; then ${CABAL} -vnormal check ; fi | |
cd ${PKGDIR_metametapost} || false | |
${CABAL} -vnormal check | |
- 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 | |
uses: actions/cache/save@v4 | |
if: always() | |
with: | |
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} | |
path: ~/.cabal/store |