name: Check

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

concurrency:
  group: check-${{ github.ref }}
  cancel-in-progress: true

env:
  NODE_OPTIONS: --max_old_space_size=6144

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Prepare
        uses: ./.github/actions/prepare

      - name: Run Linter
        run: pnpm lint

  unit:
    name: Unit Tests
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Prepare
        uses: ./.github/actions/prepare

      - name: Run Tests
        run: pnpm -r test

  analyze:
    name: CodeQL Analysis
    uses: ./.github/workflows/codeql-analysis.yml
