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, b290fd01f3f5d32f9d010fc719ced0240759c049]

    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

  test-version-file:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        deno-version-file: [.dvmrc, .tool-versions]
    steps:
      - uses: actions/checkout@v3

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

      - name: Check version
        run: deno -V | grep -q "deno 1\.43\.1"