Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
61 lines (46 loc) · 1.43 KB
/
Copy pathMakefile
File metadata and controls
61 lines (46 loc) · 1.43 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
.PHONY: res down py-lock py-sync py-install py-run ws kill restart ui-install ui-dev dag dag-kill dag-restart
CORE_DIR=core
WEB_DIR=web
INFRA_DIR=infra
WORKFLOWS_DIR=workflows
WS_PORT?=8200
DAGSTER_PORT?=3001
# Infrastructure
res:
cd $(INFRA_DIR) && docker compose up -d
down:
cd $(INFRA_DIR) && docker compose down
# Backend
py-lock:
uv lock
py-sync:
uv sync
py-install: py-sync
py-run:
cd $(CORE_DIR) && uv run uvicorn main:app --reload --reload-dir ./src --port 8000
ws:
cd $(CORE_DIR) && uv run uvicorn ws_server:app --reload --reload-dir ./src --port $(WS_PORT)
kill:
@PIDS=$$(lsof -ti :$(WS_PORT)); \
if [ -n "$$PIDS" ]; then \
echo "kill $(WS_PORT): $$PIDS"; \
kill -9 $$PIDS; \
else \
echo "No process listening on port $(WS_PORT)"; \
fi
restart: kill ws
# Frontend
ui-install:
cd $(WEB_DIR) && pnpm install
ui-dev:
cd $(WEB_DIR) && pnpm dev
# Dagster
dag:
uv run dagster dev --port $(DAGSTER_PORT) --workspace $(WORKFLOWS_DIR)/workspace.yaml
dag-kill:
@echo "Killing Dagster processes..."
@lsof -ti :$(DAGSTER_PORT) 2>/dev/null | xargs -r kill -9 2>/dev/null && echo " killed port $(DAGSTER_PORT)" || true
@ps -eo pid,cmd | awk '$$2 ~ /^python/ && /dagster.*grpc/{print $$1}' | xargs -r kill -9 2>/dev/null && echo " killed grpc" || true
@ps -eo pid,cmd | awk '$$2 ~ /^python/ && /dagster-daemon/{print $$1}' | xargs -r kill -9 2>/dev/null && echo " killed daemon" || true
@echo "Done."
dag-restart: dag-kill dag