name: Deno CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        deno-version: ["v1.x","v2.x"]

    steps:
      - name: Git Checkout Deno Module
        uses: actions/checkout@v2
      - name: Use Deno Version ${{ matrix.deno-version }}
        uses: denolib/setup-deno@v2
        with:
          deno-version: ${{ matrix.deno-version }}
      - name: Test Deno Formatting
        run: deno fmt --check
      - name: Test Deno Linting
        run: deno lint
      - name: Test and generate coverage
        run: deno task coverage:ci
      - name: Report Coverage
        uses: romeovs/lcov-reporter-action@v0.2.16
        if: github.event_name == 'pull_request'
        with:
          lcov-file: ./cov.lcov