Files
blog.pyaqa.ru/.woodpecker/pipeline.yml
Sergey Vanyushkin 76c64ca720
All checks were successful
ci/woodpecker/pr/pipeline Pipeline was successful
ci: install system deps for playwright chromium in e2e step
2026-05-09 19:25:04 +03:00

90 lines
2.3 KiB
YAML

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
UV_LINK_MODE: copy
UV_PYTHON: "3.13"
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.pyaqa.ru", "pytfm"]
EOF
- git clone https://git.pyaqa.ru/pi3c/pytfm.git
- cd $CI_WORKSPACE
- rm -rf .venv
- uv sync --group lints --group tests --group types --group dev
- name: lint
image: python:3.13
volumes:
- /tmp/uv-cache:/root/.cache/uv
environment:
UV_CACHE_DIR: /root/.cache/uv
UV_LINK_MODE: copy
UV_PYTHON: "3.13"
depends_on: [deps]
commands:
- pip install uv
- uv run --no-sync ruff check .
- uv run --no-sync ruff format --check .
- uv run --no-sync isort --check-only .
- name: type
image: python:3.13
volumes:
- /tmp/uv-cache:/root/.cache/uv
environment:
UV_CACHE_DIR: /root/.cache/uv
UV_LINK_MODE: copy
UV_PYTHON: "3.13"
depends_on: [deps]
commands:
- pip install uv
- uv run --no-sync mypy .
- name: test-unit
image: python:3.13
volumes:
- /tmp/uv-cache:/root/.cache/uv
environment:
UV_CACHE_DIR: /root/.cache/uv
UV_LINK_MODE: copy
UV_PYTHON: "3.13"
depends_on: [deps]
commands:
- pip install uv
- uv run --no-sync pytest tests/unit/
- name: test-e2e
image: python:3.13
volumes:
- /tmp/uv-cache:/root/.cache/uv
environment:
UV_CACHE_DIR: /root/.cache/uv
UV_LINK_MODE: copy
UV_PYTHON: "3.13"
depends_on: [deps]
commands:
- pip install uv
- apt-get update && apt-get install -y libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libasound2
- uv run --no-sync playwright install chromium
- uv run --no-sync blog &
- sleep 5
- uv run --no-sync pytest tests/e2e/ -v --no-cov