.PHONY: help build run dev test clean docker-build docker-run k8s-deploy k8s-undeploy help: ## Show this help message @echo 'Usage: make [target]' @echo '' @echo 'Targets:' @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-15s %s\n", $$1, $$2}' $(MAKEFILE_LIST) build: ## Build the Go binary @echo "πŸ”¨ Building..." @go build -o bin/passkey-auth . run: build ## Run the application locally @echo "πŸš€ Running..." @./bin/passkey-auth dev: ## Run in development mode with hot reload @echo "πŸ”§ Starting development server..." @./scripts/dev.sh test: ## Run tests @echo "πŸ§ͺ Running tests..." @go test -v ./... clean: ## Clean build artifacts @echo "🧹 Cleaning..." @rm -rf bin/ @rm -f *.db docker-build: ## Build Docker image @echo "🐳 Building Docker image..." @docker build -t passkey-auth:latest . docker-run: docker-build ## Run with Docker Compose @echo "🐳 Starting with Docker Compose..." @mkdir -p data @docker-compose up -d @echo "Access the application at http://localhost:8080" docker-stop: ## Stop Docker Compose @echo "πŸ›‘ Stopping Docker Compose..." @docker-compose down k8s-deploy: docker-build ## Deploy to Kubernetes @echo "☸️ Deploying to Kubernetes..." @./scripts/deploy.sh k8s-undeploy: ## Remove from Kubernetes @echo "☸️ Removing from Kubernetes..." @./scripts/undeploy.sh deps: ## Download dependencies @echo "πŸ“¦ Downloading dependencies..." @go mod download @go mod tidy fmt: ## Format code @echo "🎨 Formatting code..." @go fmt ./... lint: ## Run linter with auto-fix (excluding test files) @echo "πŸ” Running linter with auto-fix (excluding test files)..." @golangci-lint run --fix --tests=false security: ## Run security scan @echo "πŸ”’ Running security scan..." @gosec ./...