name: Ci

on: [push, pull_request]

jobs:
  test:
    name: Test Suite
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        deno: [1.16, 1.17]

    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Setup Deno
      uses: denoland/setup-deno@v1
      with:
        deno-version: ${{ matrix.deno }}

    - name: Generate coverage report
      run: |
        deno test --unstable --doc --allow-all --coverage=coverage
        deno --unstable coverage ./coverage --lcov > coverage.lcov

    - name: Upload coverage to Codecov
      uses: codecov/codecov-action@v2
      with:
        files: coverage.lcov
        fail_ci_if_error: true
        verbose: true
