name: CI

on: [push, pull_request]

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

jobs:
  ci:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout 🛎
        uses: actions/checkout@v7.0.1
      - name: Setup Node env 🏗
        uses: actions/setup-node@v7.0.0
      - name: Cache node_modules 📦
        uses: actions/cache@v6.1.0
        with:
          path: ~/.npm
          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
          restore-keys: ${{ runner.os }}-node-
      - name: Install dependencies 👨🏻‍💻
        run: npm ci
      - name: Run linter 👀
        run: npm run check-lint
      - name: Run tests 🧪
        run: npm test
