89 lines
2.7 KiB
Makefile
89 lines
2.7 KiB
Makefile
.PHONY: help install build test test-unit test-integration test-e2e test-cov clean docker-test-all
|
|
|
|
# Color output
|
|
BLUE := \033[0;34m
|
|
GREEN := \033[0;32m
|
|
YELLOW := \033[0;33m
|
|
RED := \033[0;31m
|
|
NC := \033[0m # No Color
|
|
|
|
help: ## Show this help message
|
|
@echo '$(BLUE)Admin Service - Available Commands:$(NC)'
|
|
@echo ''
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(GREEN)%-20s$(NC) %s\n", $$1, $$2}'
|
|
@echo ''
|
|
|
|
install: ## Install dependencies
|
|
@echo '$(BLUE)Installing dependencies...$(NC)'
|
|
npm install
|
|
|
|
build: ## Build the application
|
|
@echo '$(BLUE)Building application...$(NC)'
|
|
npm run build
|
|
|
|
prisma-generate: ## Generate Prisma client
|
|
@echo '$(BLUE)Generating Prisma client...$(NC)'
|
|
npm run prisma:generate
|
|
|
|
prisma-migrate: ## Run Prisma migrations
|
|
@echo '$(BLUE)Running Prisma migrations...$(NC)'
|
|
npm run prisma:migrate
|
|
|
|
test: ## Run all tests
|
|
@echo '$(BLUE)Running all tests...$(NC)'
|
|
npm test
|
|
|
|
test-unit: ## Run unit tests only
|
|
@echo '$(BLUE)Running unit tests...$(NC)'
|
|
npm run test:unit
|
|
|
|
test-integration: ## Run integration tests only
|
|
@echo '$(BLUE)Running integration tests...$(NC)'
|
|
@echo '$(YELLOW)Note: Requires test database to be running$(NC)'
|
|
npm run test:integration
|
|
|
|
test-e2e: ## Run end-to-end tests only
|
|
@echo '$(BLUE)Running E2E tests...$(NC)'
|
|
@echo '$(YELLOW)Note: Requires test database to be running$(NC)'
|
|
npm run test:e2e
|
|
|
|
test-cov: ## Run tests with coverage
|
|
@echo '$(BLUE)Running tests with coverage...$(NC)'
|
|
npm run test:cov
|
|
@echo '$(GREEN)Coverage report generated in ./coverage$(NC)'
|
|
|
|
test-watch: ## Run tests in watch mode
|
|
@echo '$(BLUE)Running tests in watch mode...$(NC)'
|
|
npm run test:watch
|
|
|
|
clean: ## Clean build artifacts and dependencies
|
|
@echo '$(BLUE)Cleaning build artifacts...$(NC)'
|
|
rm -rf dist coverage node_modules
|
|
@echo '$(GREEN)Clean complete$(NC)'
|
|
|
|
docker-test-all: ## Run all tests in Docker container
|
|
@echo '$(BLUE)Running tests in Docker...$(NC)'
|
|
@echo '$(YELLOW)Building test container...$(NC)'
|
|
docker build -f Dockerfile.test -t admin-service-test .
|
|
@echo '$(YELLOW)Running tests...$(NC)'
|
|
docker run --rm \
|
|
-e DATABASE_URL="postgresql://postgres:password@host.docker.internal:5432/admin_service_test?schema=public" \
|
|
admin-service-test
|
|
@echo '$(GREEN)Docker tests complete$(NC)'
|
|
|
|
lint: ## Run linter
|
|
@echo '$(BLUE)Running linter...$(NC)'
|
|
npm run lint
|
|
|
|
format: ## Format code
|
|
@echo '$(BLUE)Formatting code...$(NC)'
|
|
npm run format
|
|
|
|
dev: ## Start development server
|
|
@echo '$(BLUE)Starting development server...$(NC)'
|
|
npm run start:dev
|
|
|
|
start: ## Start production server
|
|
@echo '$(BLUE)Starting production server...$(NC)'
|
|
npm run start:prod
|