name: Linting

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

permissions:
  contents: read

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.x'

      - name: Install dependencies
        run: |
          pip install --upgrade ruff mypy pyright

      - name: ruff
        run: |
          ruff check .
          ruff format --check .

      - name: mypy
        run: mypy src

      - name: pyright
        run: pyright
