stages: - test test: stage: test image: python:3.12-slim before_script: - pip install uv script: - uv sync - uv run pytest web/tests/ -x -q - uv run ruff check web/src/ web/tests/ rules: - if: $CI_COMMIT_BRANCH == "master" - if: $CI_PIPELINE_SOURCE == "merge_request_event" # Deployment is handled by the on-server supervisor (src/padelnomics/supervisor.py). # It polls git every 60s, detects code changes, and runs deploy.sh automatically. # No CI secrets needed — zero SSH keys, zero deploy credentials.