.PHONY: help test test-unit test-integration build dev-up dev-down pre-deploy clean VERBOSE ?= 0 PYTEST_ARGS := $(if $(filter 1,$(VERBOSE)),-v,-q) # Default target help: ## Show this help @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' # Testing test: test-unit ## Run all tests (unit only by default) test-unit: ## Run unit tests uv run pytest tests/unit/ $(PYTEST_ARGS) test-integration: ## Run integration tests (starts/stops containers) ./scripts/run-integration-tests.sh # Docker build: ## Build Docker image docker build -t grist-mcp:latest . dev-up: ## Start development environment cd deploy/dev && docker compose up -d --build dev-down: ## Stop development environment cd deploy/dev && docker compose down # Pre-deployment pre-deploy: test-unit test-integration ## Full pre-deployment pipeline @echo "Pre-deployment checks passed!" # Cleanup clean: ## Remove test artifacts and containers cd deploy/test && docker compose down -v --rmi local 2>/dev/null || true find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true find . -type d -name .pytest_cache -exec rm -rf {} + 2>/dev/null || true