58 lines
1.4 KiB
Makefile
58 lines
1.4 KiB
Makefile
.PHONY: help build run test clean dev db-start db-stop db-reset
|
|
|
|
# Go binary path
|
|
GO := /usr/local/go/bin/go
|
|
|
|
help: ## Show this help message
|
|
@echo 'Usage: make [target]'
|
|
@echo ''
|
|
@echo 'Available targets:'
|
|
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-15s %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
|
|
|
build: ## Build the application
|
|
$(GO) build -o bin/server cmd/server/main.go
|
|
|
|
run: ## Run the application
|
|
$(GO) run cmd/server/main.go
|
|
|
|
test: ## Run all tests
|
|
$(GO) test -v ./...
|
|
|
|
test-coverage: ## Run tests with coverage
|
|
$(GO) test -v -coverprofile=coverage.out ./...
|
|
$(GO) tool cover -html=coverage.out -o coverage.html
|
|
|
|
clean: ## Clean build artifacts
|
|
rm -rf bin/
|
|
rm -f coverage.out coverage.html
|
|
|
|
dev: db-start ## Start development environment
|
|
@echo "Starting development server..."
|
|
$(GO) run cmd/server/main.go
|
|
|
|
db-start: ## Start DynamoDB local
|
|
@echo "Starting DynamoDB local..."
|
|
docker-compose up -d dynamodb-local
|
|
@echo "DynamoDB local is running on http://localhost:8000"
|
|
|
|
db-stop: ## Stop DynamoDB local
|
|
@echo "Stopping DynamoDB local..."
|
|
docker-compose down
|
|
|
|
db-reset: ## Reset DynamoDB local data
|
|
@echo "Resetting DynamoDB local..."
|
|
docker-compose down -v
|
|
docker-compose up -d dynamodb-local
|
|
|
|
deps: ## Download dependencies
|
|
$(GO) mod download
|
|
$(GO) mod tidy
|
|
|
|
fmt: ## Format code
|
|
$(GO) fmt ./...
|
|
|
|
lint: ## Run linter
|
|
golangci-lint run
|
|
|
|
.DEFAULT_GOAL := help
|