# ─────────────────────────────────────────────────────────────────────────────
# Backend CI — Python formatting checks via Ruff
# Runs on pushes and PRs to main/dev when backend files change
# ─────────────────────────────────────────────────────────────────────────────
name: Python CI

on:
  push:
    branches: [main, dev]
    paths: ['backend/**', 'pyproject.toml', 'uv.lock']
  pull_request:
    branches: [main, dev]
    paths: ['backend/**', 'pyproject.toml', 'uv.lock']

concurrency:
  group: backend-${{ github.ref }}
  cancel-in-progress: true

jobs:
  # ── Ruff format check across supported Python versions ───────────────────
  format-check:
    name: Ruff Format (${{ matrix.python-version }})
    runs-on: ubuntu-latest
    timeout-minutes: 10
    strategy:
      fail-fast: false
      matrix:
        python-version: ['3.11', '3.12']
    steps:
      - uses: actions/checkout@v5

      - uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python-version }}

      - name: Install formatter
        run: pip install "ruff>=0.15.5"

      - name: Verify formatting
        run: ruff format --check . --exclude .venv --exclude venv
