first round of files
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
.PHONY: dev build migrate test lint docker-up docker-down clean
|
||||
|
||||
BINARY := bin/forgebucket
|
||||
GO_CMD := ./cmd/forgebucket
|
||||
FRONTEND_DIR := frontend
|
||||
|
||||
# ─── Development ─────────────────────────────────────────────────────────────
|
||||
|
||||
dev:
|
||||
@echo "Starting backend + frontend dev servers..."
|
||||
@trap 'kill %1 %2 2>/dev/null; exit' INT; \
|
||||
go run $(GO_CMD) & \
|
||||
cd $(FRONTEND_DIR) && pnpm dev & \
|
||||
wait
|
||||
|
||||
# ─── Production build ─────────────────────────────────────────────────────────
|
||||
|
||||
build: build-frontend build-go
|
||||
|
||||
build-frontend:
|
||||
@echo "Building frontend..."
|
||||
pnpm -C $(FRONTEND_DIR) build
|
||||
@rm -rf web/dist
|
||||
@cp -r $(FRONTEND_DIR)/dist web/dist
|
||||
|
||||
build-go:
|
||||
@echo "Building Go binary..."
|
||||
@mkdir -p bin
|
||||
go build -ldflags="-s -w" -o $(BINARY) $(GO_CMD)
|
||||
|
||||
# ─── Database ─────────────────────────────────────────────────────────────────
|
||||
|
||||
migrate:
|
||||
@echo "Running database migrations..."
|
||||
go run ./cmd/migrate
|
||||
|
||||
# ─── Docker ───────────────────────────────────────────────────────────────────
|
||||
|
||||
docker-up:
|
||||
docker compose up -d
|
||||
|
||||
docker-down:
|
||||
docker compose down
|
||||
|
||||
# ─── Quality ──────────────────────────────────────────────────────────────────
|
||||
|
||||
test:
|
||||
go test ./... -race -count=1
|
||||
pnpm -C $(FRONTEND_DIR) test --run
|
||||
|
||||
lint:
|
||||
go vet ./...
|
||||
pnpm -C $(FRONTEND_DIR) lint
|
||||
|
||||
# ─── Housekeeping ─────────────────────────────────────────────────────────────
|
||||
|
||||
clean:
|
||||
rm -rf bin web/dist $(FRONTEND_DIR)/dist
|
||||
Reference in New Issue
Block a user