when: event: [push, pull_request] branch: [dev, main, master] steps: - name: deps image: python:3.13 volumes: - /tmp/uv-cache:/root/.cache/uv environment: UV_CACHE_DIR: /root/.cache/uv commands: - pip install uv - cd .. - | cat > pyproject.toml << 'EOF' [project] name = "pyaqa" version = "0.1.0" requires-python = ">=3.13" dependencies = [] [tool.uv.workspace] members = ["blog", "pytfm"] EOF - git clone https://git.pyaqa.ru/pi3c/pytfm.git - cd blog - uv sync --no-dev --group lints --group tests --group types - name: lint image: python:3.13 volumes: - /tmp/uv-cache:/root/.cache/uv environment: UV_CACHE_DIR: /root/.cache/uv depends_on: [deps] commands: - pip install uv - uv run ruff check . - uv run ruff format --check . - uv run isort --check-only . - name: type image: python:3.13 volumes: - /tmp/uv-cache:/root/.cache/uv environment: UV_CACHE_DIR: /root/.cache/uv depends_on: [deps] commands: - pip install uv - uv run mypy . - name: test-unit image: python:3.13 volumes: - /tmp/uv-cache:/root/.cache/uv environment: UV_CACHE_DIR: /root/.cache/uv depends_on: [deps] commands: - pip install uv - uv run pytest tests/unit/ --no-cov - name: test-e2e image: mcr.microsoft.com/playwright/python:v1.51.0 volumes: - /tmp/uv-cache:/root/.cache/uv environment: UV_CACHE_DIR: /root/.cache/uv depends_on: [deps] commands: - pip install uv - uv run blog & - sleep 5 - uv run pytest tests/e2e/ -v