name: build

on:
  workflow_dispatch:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

jobs:
  build:
    strategy:
      matrix:
        ghc:
          - 8.6.5
          - 8.8.4
          - 8.10.7
          - 9.0.2
          - 9.2.2
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Copy stack.yaml
        run: |
          rm stack.yaml
          rm stack.yaml.lock
          cp .github/stack-${{ matrix.ghc }}.yaml stack.yaml
      - uses: actions/cache@v2
        name: Cache ~/.stack/
        with:
          path: ~/.stack
          key: ${{ matrix.ghc }}-stack-root
      - uses: actions/cache@v2
        name: Cache .stack-work/
        with:
          path: .stack-work
          key: ${{ matrix.ghc }}-stack-work
      - name: Build
        run: stack build
      - name: Run tests
        run: stack test