Files
mtg-search/Makefile
T
2026-04-27 22:36:44 +09:30

118 lines
3.3 KiB
Makefile

# 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