name: Test

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

permissions:
  contents: read

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Setup repo
        uses: actions/checkout@v3

      - name: Setup Deno
        uses: denoland/setup-deno@v2
        with:
          deno-version: v2.1

      - name: Run build
        run: deno task build

      - name: Run type check
        run: deno task check

      - name: Run lint
        run: deno task lint

      - name: Run benchmarks
        run: deno task bench

      - name: Run tests
        run: deno task test
