feat: complete MVP setup with CI/CD, Makefile, docker, and backlog docs
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
SHELL := /usr/bin/env bash
|
||||
|
||||
.PHONY: all help build build-frontend build-backend dev test test-race lint check clean docker-build docker-up docker-down
|
||||
|
||||
# Default target
|
||||
all: build
|
||||
|
||||
## help: Show this help message
|
||||
help:
|
||||
@echo "RSSPipe Build & Development Commands"
|
||||
@echo "====================================="
|
||||
@sed -n 's/^##//p' $(MAKEFILE_LIST) | column -t -s ':' | sed -e 's/^/ /'
|
||||
|
||||
## build: Build frontend and backend production binary
|
||||
build: build-frontend build-backend
|
||||
|
||||
## build-frontend: Build React PWA frontend bundle (Vite + TypeScript)
|
||||
build-frontend:
|
||||
@echo "==> Building frontend bundle..."
|
||||
@cd web && npm install && npm run build
|
||||
@echo "✓ Frontend build complete: web/dist"
|
||||
|
||||
## build-backend: Build Go backend binary
|
||||
build-backend:
|
||||
@echo "==> Compiling Go binary..."
|
||||
@mkdir -p bin
|
||||
@CGO_ENABLED=0 go build -ldflags="-s -w" -o bin/rsspipe cmd/server/main.go
|
||||
@echo "✓ Backend binary ready: bin/rsspipe"
|
||||
|
||||
## dev: Run server locally
|
||||
dev: build-frontend
|
||||
@echo "==> Starting local RSSPipe server..."
|
||||
@go run cmd/server/main.go
|
||||
|
||||
## test: Run backend Go unit tests
|
||||
test:
|
||||
@echo "==> Running Go unit tests..."
|
||||
@go test -v ./...
|
||||
|
||||
## check: Run all quality gate checks (formatting, vet, tests, tsc, gitleaks)
|
||||
check:
|
||||
@chmod +x scripts/check.sh
|
||||
@./scripts/check.sh
|
||||
|
||||
## lint: Run gofmt and go vet
|
||||
lint:
|
||||
@echo "==> Verifying Go formatting..."
|
||||
@test -z "$$(gofmt -l internal/ cmd/)" || (echo "Unformatted files:" && gofmt -l internal/ cmd/ && exit 1)
|
||||
@echo "==> Running Go vet..."
|
||||
@go vet ./...
|
||||
@echo "✓ Lint passed."
|
||||
|
||||
## format: Format all Go files with gofmt
|
||||
format:
|
||||
@echo "==> Formatting Go files..."
|
||||
@gofmt -w internal/ cmd/
|
||||
@echo "✓ Formatted."
|
||||
|
||||
## docker-build: Build production Docker image
|
||||
docker-build:
|
||||
@echo "==> Building Docker image rsspipe:latest..."
|
||||
@docker build -t rsspipe:latest .
|
||||
|
||||
## docker-up: Launch RSSPipe with Docker Compose
|
||||
docker-up:
|
||||
@docker compose up -d
|
||||
|
||||
## docker-down: Stop Docker Compose services
|
||||
docker-down:
|
||||
@docker compose down
|
||||
|
||||
## clean: Remove built binaries and temporary artifacts
|
||||
clean:
|
||||
@echo "==> Cleaning build artifacts..."
|
||||
@rm -rf bin/ web/dist/
|
||||
@echo "✓ Cleaned."
|
||||
Reference in New Issue
Block a user