name: CI # Trigger the workflow on push or pull request, but only for the master branch on: pull_request: push: branches: [master] jobs: stack: name: ${{ matrix.os }} / ghc ${{ matrix.ghc }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macOS-latest, windows-latest] stack: ["2.5.1"] ghc: ["8.6.5", "8.8.4", "8.10.3", "9.0.1"] steps: - uses: actions/checkout@v2 if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master' - uses: haskell/actions/setup@v1 name: Setup Haskell Stack with: ghc-version: ${{ matrix.ghc }} stack-version: ${{ matrix.stack }} - uses: actions/cache@v2.1.4 name: Cache ~/.stack with: path: ~/.stack key: ${{ runner.os }}-${{ matrix.ghc }}-stack - name: Build run: | stack build duckling:lib --system-ghc --test --bench --no-run-tests --no-run-benchmarks - name: Test run: | stack test --system-ghc