name: test

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

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        deno:
          [1.x, "1.33.1", canary, ~1.32, b31cf9fde6ad5398c20370c136695db77df6beeb]

    steps:
      - uses: actions/checkout@v3

      - name: Setup Deno
        uses: ./
        with:
          deno-version: ${{ matrix.deno }}

      - name: Test Deno
        run: deno run https://deno.land/std@0.198.0/examples/welcome.ts

      - name: Test `deno install`
        run: |
          deno install --allow-net -n deno_curl https://deno.land/std@0.198.0/examples/curl.ts
          deno_curl https://deno.land/std@0.198.0/examples/curl.ts

      - name: Format
        if: runner.os == 'Linux' && matrix.deno == 'canary'
        run: npm run fmt:check

      - name: Lint
        if: runner.os == 'Linux' && matrix.deno == 'canary'
        run: npm run lint
