initial
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
# MTG Search - Makefile for common development tasks
|
||||
|
||||
.PHONY: help build test run clean docker-build docker-run docker-stop frontend-install frontend-build backend-build
|
||||
|
||||
help:
|
||||
@echo "MTG Search - Available Commands"
|
||||
@echo "================================"
|
||||
@echo "make build - Build both backend and frontend"
|
||||
@echo "make backend-build - Build backend only"
|
||||
@echo "make frontend-build - Build frontend only"
|
||||
@echo "make test - Run all tests"
|
||||
@echo "make backend-test - Run backend tests"
|
||||
@echo "make frontend-test - Run frontend tests"
|
||||
@echo "make run - Run backend server (requires frontend built)"
|
||||
@echo "make dev - Run frontend dev server and backend"
|
||||
@echo "make clean - Clean all build directories"
|
||||
@echo "make docker-build - Build Docker image"
|
||||
@echo "make docker-run - Start services with docker-compose"
|
||||
@echo "make docker-stop - Stop all docker-compose services"
|
||||
@echo "make docker-clean - Remove all containers and volumes"
|
||||
@echo "make lint - Run code quality checks"
|
||||
@echo "make format - Format code"
|
||||
@echo "make db-init - Initialize database"
|
||||
|
||||
build: backend-build frontend-build
|
||||
@echo "✓ Build complete"
|
||||
|
||||
backend-build:
|
||||
@echo "Building backend..."
|
||||
cd backend && ../gradlew clean build -x test
|
||||
@echo "✓ Backend build complete"
|
||||
|
||||
frontend-build:
|
||||
@echo "Building frontend..."
|
||||
cd frontend && npm install && npm run build
|
||||
@echo "✓ Frontend build complete"
|
||||
|
||||
frontend-install:
|
||||
@echo "Installing frontend dependencies..."
|
||||
cd frontend && npm install
|
||||
@echo "✓ Frontend dependencies installed"
|
||||
|
||||
test: backend-test
|
||||
@echo "✓ All tests passed"
|
||||
|
||||
backend-test:
|
||||
@echo "Running backend tests..."
|
||||
cd backend && ../gradlew test
|
||||
|
||||
frontend-test:
|
||||
@echo "Running frontend tests..."
|
||||
cd frontend && npm run test
|
||||
|
||||
run:
|
||||
@echo "Starting backend server..."
|
||||
cd backend && ../gradlew bootRun
|
||||
|
||||
dev: frontend-install
|
||||
@echo "Starting development environment..."
|
||||
@echo "Frontend: http://localhost:5173"
|
||||
@echo "Backend: http://localhost:8080"
|
||||
@echo ""
|
||||
@trap 'kill %1 %2' SIGINT; \
|
||||
(cd frontend && npm run dev) & \
|
||||
(cd backend && ../gradlew bootRun) & \
|
||||
wait
|
||||
|
||||
clean:
|
||||
@echo "Cleaning build directories..."
|
||||
cd backend && ../gradlew clean
|
||||
cd frontend && rm -rf node_modules dist
|
||||
rm -rf logs
|
||||
@echo "✓ Clean complete"
|
||||
|
||||
docker-build:
|
||||
@echo "Building Docker image..."
|
||||
docker build -t mtgsearch:latest .
|
||||
@echo "✓ Docker build complete"
|
||||
|
||||
docker-run:
|
||||
@echo "Starting Docker services..."
|
||||
docker-compose up --build
|
||||
@echo "✓ Services started"
|
||||
|
||||
docker-stop:
|
||||
@echo "Stopping Docker services..."
|
||||
docker-compose down
|
||||
@echo "✓ Services stopped"
|
||||
|
||||
docker-clean:
|
||||
@echo "Cleaning Docker resources..."
|
||||
docker-compose down -v
|
||||
docker image rm mtgsearch:latest
|
||||
@echo "✓ Docker cleanup complete"
|
||||
|
||||
lint:
|
||||
@echo "Running linters..."
|
||||
cd backend && ../gradlew check -x test
|
||||
cd frontend && npm run lint
|
||||
@echo "✓ Linting complete"
|
||||
|
||||
format:
|
||||
@echo "Formatting code..."
|
||||
cd frontend && npm run lint
|
||||
@echo "✓ Formatting complete"
|
||||
|
||||
db-init:
|
||||
@echo "Initializing database..."
|
||||
docker run --name mtgsearch-postgres \
|
||||
-e POSTGRES_DB=mtgsearch \
|
||||
-e POSTGRES_USER=postgres \
|
||||
-e POSTGRES_PASSWORD=postgres \
|
||||
-p 5432:5432 \
|
||||
-d postgres:16-alpine
|
||||
@echo "✓ Database initialized on localhost:5432"
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
Reference in New Issue
Block a user