name: Deno

on:
    push:
        branches: [master]
    pull_request:
        branches: [master]

permissions:
    contents: read

jobs:
    test:
        runs-on: ubuntu-latest

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

            - uses: actions/cache@v3
              with:
                  path: |
                      ~/.deno
                      ~/.cache/deno
                  key: ${{ runner.os }}-deno-${{ hashFiles('**/deps.ts') }}-${{ hashFiles('**/import_map.json') }}

            - name: Setup Deno

              uses: denoland/setup-deno@v1.1.0
              with:
                  deno-version: v1.32.1

            - run: deno task cache

            - name: Run linter
              run: deno lint

            - name: Run tests
              run: deno task test

            - name: Run check
              run: deno task check
