Files
mostovik-backend/Makefile
Aleksandr Meshchriakov a91ed1f1ae
Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 3m10s
CI/CD Pipeline / Run Tests (push) Successful in 3m35s
CI/CD Pipeline / Telegram Notify Success (push) Has been skipped
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 2m26s
CI/CD Pipeline / Run Tests (pull_request) Successful in 2m46s
CI/CD Pipeline / Telegram Notify Success (pull_request) Has been skipped
feat(registry): add new endpoints for registers, exchange, and backups; update routing and configurations
2026-03-04 15:36:57 +01:00

114 lines
3.4 KiB
Makefile

.PHONY: help install setup-dev dev-up dev-down prod-up prod-down logs test test-prod test-cov test-fast test-parallel test-failfast lint format type-check security-check pre-commit pre-push migrate createsuperuser shell clean
COMPOSE_DEV = docker compose -f docker-compose.dev.yml
COMPOSE_PROD = docker compose -f docker-compose.prod.yml --env-file .env.prod
help:
@echo "Available commands:"
@echo " make install - Install dependencies (uv sync --dev)"
@echo " make setup-dev - Install git hooks (pre-commit + pre-push)"
@echo " make dev-up - Start local stack (dev compose)"
@echo " make dev-down - Stop local stack"
@echo " make prod-up - Start prod compose (without db/redis)"
@echo " make prod-down - Stop prod compose"
@echo " make logs - Follow logs from dev compose"
@echo " make test - Run tests (use TARGET=... to filter)"
@echo " make test-prod - Run production-like tests (PostgreSQL + migrations)"
@echo " make pre-commit - Run all pre-commit checks"
@echo " make pre-push - Run pre-push checks (tests)"
@echo " make migrate - Run Django migrations"
@echo " make createsuperuser - Create Django superuser"
@echo " make shell - Open Django shell"
@echo " make clean - Cleanup caches and artifacts"
install:
uv sync --dev
setup-dev: install
./scripts/setup-precommit.sh
dev-up:
$(COMPOSE_DEV) up -d
dev-down:
$(COMPOSE_DEV) down
prod-up:
$(COMPOSE_PROD) up -d
prod-down:
$(COMPOSE_PROD) down
logs:
$(COMPOSE_DEV) logs -f
test:
@if [ "$(TARGET)" ]; then \
echo "Running tests: $(TARGET)"; \
if [ "$(TARGET)" = "user" ]; then \
./scripts/run-tests.sh ../tests/apps/user; \
elif [ "$(TARGET)" = "models" ] || [ "$(TARGET)" = "views" ] || [ "$(TARGET)" = "serializers" ] || [ "$(TARGET)" = "services" ]; then \
./scripts/run-tests.sh ../tests -k "test_$(TARGET)"; \
elif echo "$(TARGET)" | grep -q '^test_'; then \
./scripts/run-tests.sh ../tests -k "$(TARGET)"; \
else \
./scripts/run-tests.sh "$(TARGET)"; \
fi; \
else \
echo "Running full test suite"; \
./scripts/run-tests.sh; \
fi
test-prod:
@if [ "$(TARGET)" ]; then \
echo "Running production-like tests: $(TARGET)"; \
./scripts/run-tests-prod.sh "$(TARGET)"; \
else \
echo "Running full production-like test suite"; \
./scripts/run-tests-prod.sh; \
fi
test-cov:
./scripts/run-tests.sh ../tests --cov=src --cov-report=term-missing --cov-report=xml --cov-report=html
test-fast:
./scripts/run-tests.sh ../tests -m "not slow"
test-parallel:
./scripts/run-tests.sh ../tests -n auto || ./scripts/run-tests.sh ../tests
test-failfast:
./scripts/run-tests.sh ../tests -x
pre-commit:
uv run pre-commit run --all-files
pre-push:
uv run pre-commit run --hook-stage pre-push --all-files
lint: pre-commit
format:
uv run pre-commit run --all-files ruff-format
uv run pre-commit run --all-files ruff
type-check: pre-commit
security-check: pre-commit
migrate:
cd src && uv run python manage.py makemigrations
cd src && uv run python manage.py migrate
createsuperuser:
cd src && uv run python manage.py createsuperuser
shell:
cd src && uv run python manage.py shell
clean:
find . -type f -name "*.pyc" -delete
find . -type d -name "__pycache__" -delete
rm -rf *.log htmlcov .coverage coverage.xml bandit-report.json
rm -rf .pytest_cache .mypy_cache .ruff_cache