Updated tested-with clause to include GHC 9.6.3 and 9.8.1 #143
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
name: CI tests | |
on: | |
push: | |
branches: | |
- '*' | |
paths-ignore: | |
- '*.md' | |
pull_request: | |
paths-ignore: | |
- '*.md' | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
versions: | |
- ghc: '8.4' | |
cabal: '3.2' | |
prefix: '' | |
cabalopts: '' | |
testopts: '--test-option=--hide-successes' | |
- ghc: '8.6' | |
cabal: '3.2' | |
prefix: '' | |
cabalopts: '' | |
testopts: '--test-option=--hide-successes' | |
- ghc: '8.8' | |
cabal: '3.2' | |
prefix: '' | |
cabalopts: '-fdoctests --write-ghc-environment-files=always' | |
testopts: '--test-option=--hide-successes' | |
- ghc: '8.10' | |
cabal: '3.2' | |
prefix: '' | |
cabalopts: '-fdoctests --write-ghc-environment-files=always' | |
testopts: '--test-option=--hide-successes' | |
- ghc: '9.0' | |
cabal: '3.4' | |
prefix: '' | |
cabalopts: '-fdoctests --write-ghc-environment-files=always' | |
testopts: '--test-option=--hide-successes' | |
- ghc: '9.2' | |
cabal: '3.6' | |
prefix: '' | |
cabalopts: '-fdoctests --write-ghc-environment-files=always' | |
testopts: '--test-option=--hide-successes' | |
- ghc: '9.4' | |
cabal: '3.8' | |
prefix: '' | |
cabalopts: '-f-doctests --write-ghc-environment-files=always' | |
testopts: '--test-option=--hide-successes' | |
- ghc: '9.6' | |
cabal: '3.10' | |
prefix: '' | |
cabalopts: '-f-doctests --write-ghc-environment-files=always' | |
testopts: '--test-option=--hide-successes' | |
- ghc: '9.8' | |
cabal: '3.10' | |
prefix: '' | |
cabalopts: '-f-doctests --write-ghc-environment-files=always' | |
testopts: '--test-option=--hide-successes' | |
steps: | |
- uses: actions/checkout@v2 | |
# needed by memory | |
- name: Install numa | |
run: sudo apt-get install libnuma-dev | |
- name: Install ghc/cabal | |
run: | | |
ghcup install ghc --set ${{ matrix.versions.ghc }} | |
ghcup install cabal ${{ matrix.versions.cabal }} | |
# declare/restore cached things | |
# caching doesn't work for scheduled runs yet | |
# https://github.com/actions/cache/issues/63 | |
- name: Cache cabal global package db | |
id: cabal-global | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cabal | |
key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ hashFiles('cabal.project') }} | |
- name: Install dependencies | |
run: | | |
cabal ${{ matrix.versions.prefix }}update | |
cabal ${{ matrix.versions.prefix }}build ${{ matrix.versions.cabalopts }} --dependencies-only --enable-tests --disable-optimization | |
- name: Build and test | |
run: | | |
cabal ${{ matrix.versions.prefix }}build ${{ matrix.versions.cabalopts }} --enable-tests --disable-optimization 2>&1 | tee build.log | |
# fail if warnings in local build | |
! grep -q ": *[Ww]arning:" build.log || exit 1 | |
cabal ${{ matrix.versions.prefix }}test ${{ matrix.versions.cabalopts }} --disable-optimization ${{ matrix.versions.testopts }} | |
windows: | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Cache stack global package db | |
id: stack-global-package-db | |
uses: actions/cache@v2 | |
with: | |
path: | | |
C:\Users\runneradmin\AppData\Roaming\stack\ | |
key: ${{ runner.os }}-appdata-roaming-stack-${{ hashFiles('stack.yaml') }} | |
- name: Install dependencies | |
run: | | |
stack update | |
stack test --dependencies-only --fast | |
- name: Build and test | |
shell: cmd | |
run: | | |
stack test --fast --test-arguments=--hide-successes | |
macos: | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
versions: | |
- ghc: '9.6' | |
cabal: '3.10' | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install ghc/cabal | |
run: | | |
ghcup install ghc --set ${{ matrix.versions.ghc }} | |
ghcup install cabal ${{ matrix.versions.cabal }} | |
- name: Cache cabal global package db | |
id: cabal-global | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cabal | |
key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ hashFiles('cabal.project') }} | |
- name: Install dependencies | |
run: | | |
cabal update | |
cabal build --dependencies-only --enable-tests --disable-optimization --write-ghc-environment-files=always | |
- name: Build and test | |
run: | | |
cabal build --enable-tests --disable-optimization --write-ghc-environment-files=always 2>&1 | tee build.log | |
# fail if warnings in local build | |
! grep -q ": *[Ww]arning:" build.log || exit 1 | |
cabal test --disable-optimization | |
benchmark: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
versions: | |
- ghc: '9.6' | |
cabal: '3.10' | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install icu | |
run: sudo apt-get install libicu-dev | |
- name: Install ghc/cabal | |
run: | | |
ghcup install ghc --set ${{ matrix.versions.ghc }} | |
ghcup install cabal ${{ matrix.versions.cabal }} | |
- name: Cache cabal global package db | |
id: cabal-global | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cabal | |
key: benchmark-${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ hashFiles('cabal.project') }} | |
- name: Install dependencies | |
run: | | |
cabal update | |
cabal build --dependencies-only --enable-optimization=1 --enable-benchmarks --disable-tests | |
- name: Build and test | |
run: | | |
cabal build --enable-optimization=1 --enable-benchmarks --disable-tests 2>&1 | tee build.log | |
# fail if warnings in local build | |
! grep -q ": *[Ww]arning:" build.log || exit 1 | |
cabal bench --enable-optimization=1 --benchmark-options='+RTS -T -RTS' |