2020-12-10 21:50:43 +03:00
|
|
|
name: CI
|
|
|
|
|
|
|
|
# Trigger the workflow on push or pull request, but only for the master branch
|
|
|
|
on:
|
|
|
|
pull_request:
|
|
|
|
push:
|
|
|
|
branches: [master]
|
|
|
|
|
|
|
|
jobs:
|
2021-04-13 04:30:14 +03:00
|
|
|
stack:
|
2020-12-10 21:50:43 +03:00
|
|
|
name: ${{ matrix.os }} / ghc ${{ matrix.ghc }}
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
|
|
|
stack: ["2.5.1"]
|
2021-04-13 04:30:14 +03:00
|
|
|
ghc: ["8.6.5", "8.8.4", "8.10.3", "9.0.1"]
|
2020-12-10 21:50:43 +03:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'
|
|
|
|
|
2021-04-13 04:30:14 +03:00
|
|
|
- uses: haskell/actions/setup@v1
|
2020-12-10 21:50:43 +03:00
|
|
|
name: Setup Haskell Stack
|
|
|
|
with:
|
|
|
|
ghc-version: ${{ matrix.ghc }}
|
|
|
|
stack-version: ${{ matrix.stack }}
|
|
|
|
|
2021-04-13 04:30:14 +03:00
|
|
|
- uses: actions/cache@v2.1.4
|
2020-12-10 21:50:43 +03:00
|
|
|
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
|