ayushm98 commited on
Commit
cd4eb30
·
1 Parent(s): 15ea397

Add Makefile with common development and deployment commands

Browse files
Files changed (1) hide show
  1. Makefile +104 -0
Makefile ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .PHONY: help install dev test lint format run run-ui docker-build docker-up docker-down clean
2
+
3
+ # Default target
4
+ help:
5
+ @echo "Cascade - Intelligent LLM Router"
6
+ @echo ""
7
+ @echo "Usage: make [target]"
8
+ @echo ""
9
+ @echo "Development:"
10
+ @echo " install Install dependencies with Poetry"
11
+ @echo " dev Install with dev dependencies"
12
+ @echo " test Run tests with pytest"
13
+ @echo " lint Run linting (ruff + black check)"
14
+ @echo " format Format code with black"
15
+ @echo ""
16
+ @echo "Running:"
17
+ @echo " run Start the API server"
18
+ @echo " run-ui Start the Streamlit UI"
19
+ @echo ""
20
+ @echo "Docker:"
21
+ @echo " docker-build Build Docker image"
22
+ @echo " docker-up Start all services with docker-compose"
23
+ @echo " docker-down Stop all services"
24
+ @echo ""
25
+ @echo "Deployment:"
26
+ @echo " deploy-railway Deploy to Railway"
27
+ @echo " deploy-fly Deploy to Fly.io"
28
+ @echo ""
29
+ @echo "Other:"
30
+ @echo " clean Clean up build artifacts"
31
+
32
+ # Development
33
+ install:
34
+ poetry install --no-dev
35
+
36
+ dev:
37
+ poetry install
38
+
39
+ test:
40
+ PYTHONPATH=src poetry run pytest tests/ -v --cov=src/cascade
41
+
42
+ lint:
43
+ poetry run ruff check src/
44
+ poetry run black --check src/
45
+
46
+ format:
47
+ poetry run black src/
48
+ poetry run ruff check --fix src/
49
+
50
+ # Running locally
51
+ run:
52
+ PYTHONPATH=src poetry run uvicorn cascade.api.main:app --reload --host 0.0.0.0 --port 8000
53
+
54
+ run-ui:
55
+ PYTHONPATH=src poetry run streamlit run src/cascade/ui/app.py --server.port 8501
56
+
57
+ # Docker
58
+ docker-build:
59
+ docker build -t cascade:latest .
60
+
61
+ docker-up:
62
+ docker-compose up -d
63
+
64
+ docker-down:
65
+ docker-compose down
66
+
67
+ docker-logs:
68
+ docker-compose logs -f
69
+
70
+ # Deployment
71
+ deploy-railway:
72
+ @echo "Deploying to Railway..."
73
+ @echo "1. Install Railway CLI: npm install -g @railway/cli"
74
+ @echo "2. Login: railway login"
75
+ @echo "3. Initialize: railway init"
76
+ @echo "4. Deploy: railway up"
77
+ railway up
78
+
79
+ deploy-fly:
80
+ @echo "Deploying to Fly.io..."
81
+ @echo "1. Install Fly CLI: curl -L https://fly.io/install.sh | sh"
82
+ @echo "2. Login: fly auth login"
83
+ @echo "3. Launch: fly launch"
84
+ @echo "4. Deploy: fly deploy"
85
+ fly deploy
86
+
87
+ # ML Training
88
+ train:
89
+ PYTHONPATH=src poetry run python -m ml.training.train --dataset easy2hard --epochs 5
90
+
91
+ export-onnx:
92
+ PYTHONPATH=src poetry run python -m ml.export.convert_to_onnx
93
+
94
+ # Cleanup
95
+ clean:
96
+ rm -rf .pytest_cache
97
+ rm -rf __pycache__
98
+ rm -rf src/**/__pycache__
99
+ rm -rf .coverage
100
+ rm -rf htmlcov
101
+ rm -rf dist
102
+ rm -rf *.egg-info
103
+ find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
104
+ find . -type f -name "*.pyc" -delete 2>/dev/null || true