name: ESLint

on:
  # Trigger the workflow on push or pull request,
  # but only for the main branch
  push:
    branches:
      - main  # Trigger on push events to the main branch
  pull_request:
    branches:
      - main  # Trigger on pull request events targeting the main branch

jobs:
  run-linters:  # Define a job named "run-linters"
    name: Run linters  # Human-readable name for the job
    runs-on: ubuntu-latest  # Specify the latest Ubuntu runner for the job

    steps:
      - name: Check out Git repository  # Step to check out the repository
        uses: actions/checkout@v2  # Use the checkout action version 2

      - name: Set up Node.js  # Step to set up Node.js environment
        uses: actions/setup-node@v1  # Use the setup-node action version 1
        with:
          node-version: 20  # Specify Node.js version 20

      - name: Install Node.js dependencies  # Step to install Node.js dependencies
        run: npm ci  # Use 'npm ci' to install dependencies

      - name: eslint  # Step to run linters
        run: npm run eslint-ci