name: Lint

on:
    # Trigger the workflow on push or pull request,
    # but only for the main branch
    push:
        branches: [ "dev", "main" ]
    # Replace pull_request with pull_request_target if you
    # plan to use this action with forks, see the Limitations section
    pull_request:
        branches: [ "dev", "main" ]
        types: ["synchronize", "ready_for_review", "opened", "reopened"]


# Down scope as necessary via https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token
permissions:
    checks: write
    contents: write

jobs:
    run-linters:
        name: Run linters
        if: '! github.event.pull_request.draft'
        runs-on: [self-hosted, Linux, X64]

        steps:
            - name: Check out Git repository
              uses: actions/checkout@v4

            - name: Set up Node.js
              uses: actions/setup-node@v4
              with:
                  node-version: 20

            # ESLint and Prettier must be in `package.json`
            - name: Install Node.js dependencies
              run: npm ci

            - name: Run linters
              uses: rkuykendall/lint-action@master
              with:
                  auto_fix: true
                  eslint: true
                  eslint_args: "--config eslint.config.ts --ignore-pattern '**/prettier.config.js'"
                  prettier: true
                  commit_message: 'style: fix linting issues met ${linter}'
