hermes-kanban-miniapp/Makefile

94 lines
2.8 KiB
Makefile
Raw Permalink Normal View History

# ─────────────────────────────────────────────────────────────
# Hermes Kanban Mini App — Makefile
# Common development and deployment commands
# ─────────────────────────────────────────────────────────────
.PHONY: dev dev-bridge dev-frontend build install typecheck test test-bridge clean up down logs
# ── Local development ───────────────────────────────────────
## Install all dependencies
install:
pnpm install
## Run bridge + frontend in dev mode (parallel)
dev:
@echo "Starting bridge (port 3456) and frontend (port 5173)..."
@pnpm --filter @kanban/bridge dev & \
pnpm --filter frontend dev & \
wait
## Run bridge only in dev mode (watch)
dev-bridge:
pnpm --filter @kanban/bridge dev
## Run frontend only in dev mode
dev-frontend:
pnpm --filter frontend dev
# ── Build ───────────────────────────────────────────────────
## Build all TypeScript packages
build:
pnpm -r build
## Build Docker images
docker-build:
docker compose build
## Build + tag production images
docker-build-prod:
docker compose -f docker-compose.yml build --no-cache
# ── Quality ─────────────────────────────────────────────────
## Run TypeScript type checking
typecheck:
pnpm typecheck
## Run all tests
test: test-bridge
## Run bridge tests
test-bridge:
pnpm --filter @kanban/bridge test
## Run frontend build (includes tsc)
test-frontend:
pnpm --filter frontend build
## Run full CI pipeline locally
ci: install typecheck test build
# ── Docker Compose ──────────────────────────────────────────
## Start services with docker compose
up:
docker compose up -d
## Stop services
down:
docker compose down
## View service logs
logs:
docker compose logs -f
## Rebuild and restart services
restart: down docker-build up
# ── Cleanup ─────────────────────────────────────────────────
## Remove build artifacts
clean:
pnpm -r clean
rm -rf frontend/dist
## Full clean (including node_modules)
clean-all: clean
rm -rf node_modules packages/*/node_modules frontend/node_modules
## Remove Docker images
docker-clean:
docker compose down --rmi local --volumes --remove-orphans