2026-10-18 19:42:12 +04:00

59 lines
3.1 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Команды разработки tabular-parser. Backend — api/.venv; запуск из корня репозитория.
VENV := api/.venv
BIN := $(CURDIR)/$(VENV)/bin
COMPOSE_FILE ?= ../docs/dev/docker-compose.yml
.PHONY: venv lint test test-integration test-fixtures golden-update golden-check check docker-build check-full up statements-check
# Python 3.11 (версия платформы); внутренние пакеты raisa_* вне банка недоступны — пропускаем их
venv:
cd api && uv venv --python 3.11 --allow-existing .venv
cd api && grep -v '^raisa_' requirements.txt | uv pip install --python .venv/bin/python -r -
cd api && grep -v '^-r' requirements-dev.txt | uv pip install --python .venv/bin/python -r -
lint:
cd api && $(BIN)/ruff check .
cd api && $(BIN)/ruff format --check .
cd api && $(BIN)/mypy src arm_statements
test:
cd api && $(BIN)/pytest -m "not integration"
test-integration:
cd api && $(BIN)/pytest -m integration
# Тесты на реальных данных из ../fixtures (ARM_KA_FIXTURES): golden-снимки, покрытие словарей, property-тест
test-fixtures:
cd api && $(BIN)/pytest -m fixtures
# Golden-снимки разбора ОСВ: перезапись в ../fixtures/golden/expected_osv_parse/ + unified diff изменившихся.
# Результат обязательно просмотреть и коммитить в репозиторий fixtures отдельным коммитом (снимок — регрессия, не оракул)
golden-update:
cd api && ENV_FILE=.env.test $(BIN)/python scripts/golden_update.py
# То же без записи: код возврата 1, если снимки расходятся с разбором
golden-check:
cd api && ENV_FILE=.env.test $(BIN)/python scripts/golden_update.py --check
check: lint test
# Сборка образа из корня репозитория
docker-build:
docker build -t tabular-parser .
# Полная проверка перед PR: быстрые проверки, затем NATS/MinIO из compose (make up), затем образ
check-full: check statements-check test-integration docker-build
# Только инфраструктура, нужная сервису (без arm-core): NATS и MinIO; postgres — для общей среды compose
up:
docker compose -f $(COMPOSE_FILE) up -d --wait postgres nats minio
# Свежесть копии api/arm_statements/ (../docs/dev/checks.md): 0 — синхронна; 10 — отстала или перечень кодов в docs
# новее (цель зелёная, предупреждение вписать в описание PR); 20 и 2 — красная. Читает ../docs и ../arm-statements,
# поэтому только в check-full, не в check
ARM_KA_DOCS ?= ../docs
statements-check:
@rc=0; $(ARM_KA_DOCS)/scripts/sync-statements.sh --check --host-dir . || rc=$$?; \
if [ $$rc -eq 10 ]; then echo "statements-check: ПРЕДУПРЕЖДЕНИЕ — впишите в описание PR"; \
elif [ $$rc -ne 0 ]; then exit $$rc; fi