38 lines
1.2 KiB
Makefile
38 lines
1.2 KiB
Makefile
.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
|