arm-scan-gateway/Makefile
Andrey Epifancev 5a818b4356 Срез 0 [2.1]: pyproject (ruff, mypy), requirements-dev, Makefile, маркеры pytest
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 02:33:01 +04:00

50 lines
2.6 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.

# Команды разработки scan-gateway. Запуск из корня репозитория; рецепты сами переходят в api/ (как и в arm-core),
# поэтому backend-команды работают с каталогом api/ и окружением api/.venv.
VENV := api/.venv
BIN := $(CURDIR)/$(VENV)/bin
# docs/dev — соседний репозиторий и в основном workspace, и в worktree .wt/<срез>/
COMPOSE_FILE ?= ../docs/dev/docker-compose.yml
COMPOSE_PROJECT ?= arm-ka
.PHONY: help venv lint test test-integration check check-full up emulator
help:
@echo "venv - окружение api/.venv (Python 3.11) с зависимостями без raisa_*"
@echo "lint - ruff check, ruff format --check, mypy src"
@echo "test - pytest без интеграционных тестов"
@echo "test-integration - интеграционные тесты (нужны NATS и MinIO: make up)"
@echo "check - lint + test"
@echo "check-full - check + test-integration"
@echo "up - поднять NATS/MinIO/PostgreSQL общим compose-проектом arm-ka"
@echo "emulator - запустить эмулятор ИС Сканирование (python -m src.scan_emulator)"
# Python 3.11 (версия платформы); внутренние пакеты raisa_* вне банка недоступны — пропускаем их
venv:
cd api && uv venv --python 3.11 --allow-existing .venv
cd api && grep -v '^raisa_' 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
test:
cd api && $(BIN)/pytest -m "not integration"
test-integration:
cd api && $(BIN)/pytest -m integration
check: lint test
# Полная проверка перед PR. Сборку docker-образа добавит задача 15
check-full: check test-integration
# Общий compose-проект workspace (arm-ka): его используют и другие сервисы, поэтому целей down/stop/restart нет.
# --wait — только со списком долгоживущих сервисов: одноразовый minio-init завершается кодом 0, и compose считает это сбоем
up:
docker compose -f $(COMPOSE_FILE) --project-name $(COMPOSE_PROJECT) up -d --wait postgres nats minio
# Эмулятор ИС Сканирование: модуль появится в задаче 9
emulator:
cd api && $(BIN)/python -m src.scan_emulator