-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
81 lines (64 loc) · 2.14 KB
/
Copy pathMakefile
File metadata and controls
81 lines (64 loc) · 2.14 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
# Tax GPT Take-Home Project Makefile
.PHONY: install-pkgs install-pkg-dev check-env up down logs api-dev frontend-dev frontend-dev-refresh-pkgjson db-dev docker-up docker-down docker-logs lint format lint-fix
PIP := python -m pip
DC := docker compose -f docker-compose.yml
DC_DEV := docker compose -f docker-compose.yml -f docker-compose.dev.yml
install-pkgs:
@echo "🔧 Installing packages..."
$(PIP) install packages
# Install all packages for development in editable mode
install-pkgs-editable:
@echo "🔧 Installing packages in editable mode..."
$(PIP) install -e packages
tests:
@echo "🔍 Running tests..."
pytest packages
# --- Docker (prod-like) ---
check-env:
@if [ ! -f .env ]; then \
echo "❌ Missing .env file in repo root."; \
echo " Create one at ./\.env (see README/docker docs for required values)."; \
exit 1; \
fi
up: check-env
@echo "🐳 Starting production-like services..."
@echo "🐳 Building images (showing full output)..."
$(DC) build --progress=plain
@echo "🐳 Starting services..."
$(DC) up -d
@echo "📋 Following logs (Ctrl+C to stop)..."
$(DC) logs -f --tail=200
down:
@echo "🐳 Stopping services..."
$(DC) down
logs:
@echo "📋 Showing Docker logs..."
$(DC) logs -f
# --- Docker (dev) ---
api-dev:
@echo "🔧 Starting API in dev mode (uvicorn --reload in container)..."
@echo "🛑 Stopping prod API to ensure port ${API_PORT:-8080} is free..."
-$(DC) stop api
-$(DC) rm -f api
$(DC_DEV) up -d --no-deps api_dev
frontend-dev:
@echo "🔧 Starting frontend in dev mode (vite dev server in container)..."
$(DC_DEV) up -d --no-deps --force-recreate frontend
db-dev:
@echo "🧰 Exposing DB ports to host (neo4j web+bolt, chroma http) via dev compose..."
$(DC_DEV) up -d --force-recreate neo4j chroma
# --- Code Quality ---
lint:
@echo "🔍 Running ruff linter..."
ruff check packages/
lint-fix:
@echo "🔧 Running ruff linter with auto-fix..."
ruff check packages/ --fix
format:
@echo "🎨 Running black formatter..."
black packages/
format-check:
@echo "🔍 Checking black formatting..."
black --check packages/
quality: format lint-fix
@echo "✅ Code quality checks completed!"