- Add idempotent seed tool with duplicate detection for agents/issues/comments - Add migration CLI supporting up/down with schema_migrations tracking - Add Makefile targets: make setup (first-time), make start, make stop - Update .gitignore for test artifacts and compiled binaries Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
73 lines
1.7 KiB
Makefile
73 lines
1.7 KiB
Makefile
.PHONY: dev daemon build test migrate-up migrate-down sqlc seed clean setup start stop
|
|
|
|
# ---------- One-click commands ----------
|
|
|
|
# First-time setup: install deps, start DB, run migrations, seed data
|
|
setup:
|
|
@echo "==> Installing dependencies..."
|
|
pnpm install
|
|
@echo "==> Starting PostgreSQL..."
|
|
docker compose up -d
|
|
@echo "==> Waiting for PostgreSQL to be ready..."
|
|
@until docker compose exec -T postgres pg_isready -U multica > /dev/null 2>&1; do \
|
|
sleep 1; \
|
|
done
|
|
@echo "==> Running migrations..."
|
|
cd server && go run ./cmd/migrate up
|
|
@echo "==> Seeding data..."
|
|
cd server && go run ./cmd/seed
|
|
@echo ""
|
|
@echo "✓ Setup complete! Run 'make start' to launch the app."
|
|
|
|
# Start all services (backend + frontend)
|
|
start:
|
|
@docker compose up -d
|
|
@until docker compose exec -T postgres pg_isready -U multica > /dev/null 2>&1; do \
|
|
sleep 1; \
|
|
done
|
|
@echo "Starting backend and frontend..."
|
|
@trap 'kill 0' EXIT; \
|
|
(cd server && go run ./cmd/server) & \
|
|
pnpm dev:web & \
|
|
wait
|
|
|
|
# Stop all services
|
|
stop:
|
|
@echo "Stopping services..."
|
|
@-lsof -ti:8080 | xargs kill -9 2>/dev/null
|
|
@-lsof -ti:3000 | xargs kill -9 2>/dev/null
|
|
docker compose down
|
|
@echo "✓ All services stopped."
|
|
|
|
# ---------- Individual commands ----------
|
|
|
|
# Go server
|
|
dev:
|
|
cd server && go run ./cmd/server
|
|
|
|
daemon:
|
|
cd server && go run ./cmd/daemon
|
|
|
|
build:
|
|
cd server && go build -o bin/server ./cmd/server
|
|
cd server && go build -o bin/daemon ./cmd/daemon
|
|
|
|
test:
|
|
cd server && go test ./...
|
|
|
|
# Database
|
|
migrate-up:
|
|
cd server && go run ./cmd/migrate up
|
|
|
|
migrate-down:
|
|
cd server && go run ./cmd/migrate down
|
|
|
|
sqlc:
|
|
cd server && sqlc generate
|
|
|
|
seed:
|
|
cd server && go run ./cmd/seed
|
|
|
|
# Cleanup
|
|
clean:
|
|
rm -rf server/bin server/tmp
|