name: Continuous Integration / Deployment

on:
  push:
    branches:
      - '**'
  pull_request:

jobs:
  testing:
    name: ESLint and TypeScript compilation
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Project
        uses: actions/checkout@v4

      - name: Add problem matcher
        run: echo "::add-matcher::.github/problemMatchers/eslint.json" && echo "::add-matcher::.github/problemMatchers/tsc.json"

      - name: Use Node.js v20
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
          registry-url: https://registry.npmjs.org/

      - name: Install dependencies
        run: npm ci

      - name: Check lint on discord-api-types
        run: npm run test:lint

      - name: Run TSC
        run: npm run build:ci

      - name: Run Type Tests
        run: npm run test:types
