.PHONY: test test-all test-unit test-integration lint build dev run clean # Default: Run unit tests only (fast, no Chrome needed) test: test-unit # Run unit tests only (CI-safe, no Chrome) test-unit: @echo "๐Ÿงช Running unit tests..." go test -v -race -coverprofile=coverage.txt -covermode=atomic ./... # Run ALL tests including PDF/Chrome integration tests test-all: @echo "๐Ÿงช Running ALL tests (including integration tests)..." go test -v -race -tags=integration -coverprofile=coverage.txt -covermode=atomic ./... # Run integration tests only test-integration: @echo "๐Ÿงช Running integration tests only..." go test -v -race -tags=integration ./internal/handlers -run PDF # Run linter lint: @echo "๐Ÿ” Running golangci-lint..." golangci-lint run # Build binary build: @echo "๐Ÿ”จ Building..." go build -v -o cv-server . # Run in development mode with hot reload dev: @echo "๐Ÿš€ Starting development server with hot reload..." GO_ENV=development TEMPLATE_HOT_RELOAD=true go run main.go # Run in production mode run: @echo "๐Ÿš€ Starting server..." go run main.go # Clean build artifacts clean: @echo "๐Ÿงน Cleaning build artifacts..." rm -f cv-server coverage.txt coverage-report.txt benchmark.txt # Run all checks (lint + unit tests) check: lint test-unit @echo "โœ… All checks passed!" # Run everything (lint + all tests + build) all: lint test-all build @echo "โœ… Everything passed!"