Files

53 lines
1.5 KiB
Makefile

PYTHON ?= .venv/bin/python
BOOTSTRAP_PYTHON ?= python3
NPM ?= npm
.PHONY: setup install test-fast test-integration test-fault test-security test-e2e test-ssh-integration lint typecheck frontend-build check-v1-absent check-openapi check
setup:
test -x $(PYTHON) || $(BOOTSTRAP_PYTHON) -m venv .venv
$(PYTHON) -m pip install --upgrade pip
$(PYTHON) -m pip install -e 'backend[dev]'
$(NPM) --prefix frontend ci
install: setup
test-fast:
$(PYTHON) -m pytest tests/unit tests/contract -q
test-integration:
$(PYTHON) -m pytest tests/integration -q
test-fault:
$(PYTHON) -m pytest tests/fault -q
test-security:
$(PYTHON) -m pytest tests/security -q
test-e2e:
BACKUP_TOOL_COMPOSE_E2E=1 $(PYTHON) -m pytest tests/e2e/test_compose_v2.py -q
test-ssh-integration:
BACKUP_TOOL_SSH_INTEGRATION=1 $(PYTHON) -m pytest tests/integration/test_ssh_backup_restore.py -q
lint:
$(PYTHON) -m ruff check --config backend/pyproject.toml backend/src backend/alembic tests tools
$(PYTHON) -m ruff format --check --config backend/pyproject.toml backend/src backend/alembic tests tools
typecheck:
$(PYTHON) -m mypy --config-file backend/pyproject.toml
$(NPM) --prefix frontend run typecheck
frontend-build:
$(NPM) --prefix frontend run build
check-openapi:
$(PYTHON) tools/export_openapi.py
$(NPM) --prefix frontend run api:generate
git diff --exit-code -- openapi/v2.json frontend/src/api/generated
check-v1-absent:
$(PYTHON) tools/forbidden_v1_scan.py .
check: check-v1-absent check-openapi test-fast test-integration test-fault test-security lint typecheck frontend-build