53 lines
1.5 KiB
Makefile
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
|