-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
89 lines (72 loc) · 3.17 KB
/
Makefile
File metadata and controls
89 lines (72 loc) · 3.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
.DEFAULT_GOAL := help
.PHONY: help
help: ## Show this help message
@echo 'Usage: make [target]'
@echo ''
@echo 'Available targets:'
@awk 'BEGIN {FS = ":.*##"; printf ""} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-20s\033[0m %s\n", $$1, $$2 }' $(MAKEFILE_LIST)
# Documentation targets
.PHONY: docs-build docs-serve docs-deploy
docs-build: ## Build MkDocs documentation
@echo "Building documentation..."
poetry run mkdocs build --verbose
docs-serve: ## Serve documentation locally (development server)
@echo "Starting documentation server..."
$(eval DEV_PORT := $(shell grep '^DOCS_DEV_PORT=' .env 2>/dev/null | cut -d'=' -f2 | tr -d ' ' || echo '8000'))
@echo "Checking for existing servers on port $(DEV_PORT)..."
@lsof -ti:$(DEV_PORT) | xargs -r kill -9 2>/dev/null || true
@echo "Open http://127.0.0.1:$(DEV_PORT) in your browser"
poetry run mkdocs serve --dev-addr=127.0.0.1:$(DEV_PORT) --livereload --watch-theme
docs-deploy: ## Deploy documentation to GitHub Pages
@echo "Deploying documentation..."
poetry run mkdocs gh-deploy --force
# Dependency & code quality targets
.PHONY: install lint format test
install: ## Install project dependencies (including dev tools)
@echo "Installing dependencies..."
poetry sync --with dev
lint: ## Run linting checks
@echo "Running linting checks..."
poetry run flake8 src/api/ --max-line-length=100
poetry run pylint src/api/
format: ## Format code using black
@echo "Formatting code..."
poetry run black src/api/ --line-length=100
test: install ## Run the full pytest suite in ./tests
@echo "Running tests..."
poetry run pytest ./tests
install-hooks: ## Install pre-commit git hooks
@echo "$(BLUE)Installing pre-commit git hooks...$(NC)"
poetry run pre-commit install --install-hooks
@echo "$(GREEN)Git hooks installed successfully.$(NC)"
# Docker targets
.PHONY: docker-build docker-up docker-down docker-debug docker-debug-down docker-logs
docker-build: ## Build Docker image
@echo "Building Docker image..."
docker-compose -f docker-compose.debug.yml build
docker-dev: ## Build and start Docker image
@echo "Building and running Docker image..."
docker-compose -f docker-compose.debug.yml up --build -d
docker-rebuild: ## Rebuild services using docker-compose
@echo "Rebuilding services..."
docker-compose -f docker-compose.debug.yml down
docker-compose -f docker-compose.debug.yml up --build -d
docker-up: ## Start services using docker-compose
@echo "Starting services..."
docker-compose -f docker-compose.debug.yml up -d
docker-down: ## Stop services using docker-compose
@echo "Stopping services..."
docker-compose -f docker-compose.debug.yml down
docker-restart: ## Restart services using docker-compose
@echo "Restarting services..."
docker-compose -f docker-compose.debug.yml down
docker-compose -f docker-compose.debug.yml up -d
docker-debug: ## Start services in debug mode with hot-reload
@echo "Starting services in debug mode..."
docker-compose -f docker-compose.debug.yml up
docker-debug-down: ## Stop debug services
@echo "Stopping debug services..."
docker-compose -f docker-compose.debug.yml down
docker-logs: ## Show logs from running containers
@echo "Showing logs..."
docker-compose -f docker-compose.debug.yml logs -f