name: Static Analysis

on:
  pull_request:
  push:
    branches:
      - main

jobs:
  types:
    name: Typescript
    runs-on: ubuntu-latest

    steps:
      - name: Check out repo
        uses: actions/checkout@v2

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 18

      - name: Installing dependencies
        run: yarn install --frozen-lockfile

      - name: Run Typescript compiler
        run: yarn types:check

  prettier:
    name: Prettier
    runs-on: ubuntu-latest

    steps:
      - name: Check out repo
        uses: actions/checkout@v2

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 18

      - name: Installing dependencies
        run: yarn install --frozen-lockfile

      - name: Run Prettier checks
        run: yarn prettier:check
  
  lint:
    name: ESLint
    runs-on: ubuntu-latest

    steps:
      - name: Check out repo
        uses: actions/checkout@v2

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 18

      - name: Installing dependencies
        run: yarn install --frozen-lockfile

      - name: Run ESLint checks
        run: yarn lint:check
