You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.6 KiB
Makefile
60 lines
1.6 KiB
Makefile
# Makefile (레포 루트)
|
|
.PHONY: help install fe be dev test lint format health seed migrate clean
|
|
|
|
FRONT := frontend
|
|
BACK := backend
|
|
|
|
help:
|
|
@echo "make install - 프론트/백 의존성 설치"
|
|
@echo "make dev - 프론트(3000)+백(8000) 동시 실행"
|
|
@echo "make fe - 프론트만 (next dev)"
|
|
@echo "make be - 백엔드만 (uvicorn --reload)"
|
|
@echo "make test - pytest + vitest"
|
|
@echo "make lint - ruff + eslint"
|
|
@echo "make health - 두 health 엔드포인트 curl"
|
|
@echo "make seed - DB 시드 적재"
|
|
@echo "make migrate - alembic upgrade head"
|
|
|
|
install:
|
|
cd $(FRONT) && pnpm install
|
|
cd $(BACK) && uv sync
|
|
|
|
fe:
|
|
cd $(FRONT) && pnpm dev
|
|
|
|
be:
|
|
cd $(BACK) && uv run uvicorn app.main:app --reload --port 8000
|
|
|
|
# 두 서버 동시 실행: Ctrl-C 시 둘 다 정리.
|
|
dev:
|
|
@echo "▶ backend :8000 / frontend :3000 (Ctrl-C 로 종료)"
|
|
@trap 'kill 0' INT TERM EXIT; \
|
|
( cd $(BACK) && uv run uvicorn app.main:app --reload --port 8000 ) & \
|
|
( cd $(FRONT) && pnpm dev ) & \
|
|
wait
|
|
|
|
test:
|
|
cd $(BACK) && uv run pytest
|
|
cd $(FRONT) && pnpm test
|
|
|
|
lint:
|
|
cd $(BACK) && uv run ruff check .
|
|
cd $(FRONT) && pnpm lint
|
|
|
|
format:
|
|
cd $(BACK) && uv run ruff format . && uv run black .
|
|
cd $(FRONT) && pnpm format
|
|
|
|
health:
|
|
@echo "── /api/health ──" && curl -s http://localhost:8000/api/health | python3 -m json.tool
|
|
@echo "── /api/llm/health ──" && curl -s http://localhost:8000/api/llm/health | python3 -m json.tool
|
|
|
|
seed:
|
|
cd $(BACK) && uv run python -m app.seed
|
|
|
|
migrate:
|
|
cd $(BACK) && uv run alembic upgrade head
|
|
|
|
clean:
|
|
rm -rf $(FRONT)/.next $(BACK)/ari.db $(BACK)/.pytest_cache
|