image: python:3.12-slim cache: paths: - .cache/pip - venv/ variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" before_script: - python -V - python -m venv venv - source venv/bin/activate - pip install --upgrade pip - pip install ruff mypy pytest - pip install . stages: - lint - test run_ruff: stage: lint script: - ruff check . run_mypy: stage: lint script: - mypy src run_pytest: stage: test script: - pytest --junit-xml=report.xml artifacts: when: always reports: junit: report.xml