Files
gotail/Makefile

65 lines
1.9 KiB
Makefile

.PHONY: help build dev-backend dev-frontend test lint docker-build docker-run clean
help: ## Show this help
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
build: ## Build production binary
@echo "Building frontend..."
cd frontend && npm install --legacy-peer-deps && npm run build
@echo "Building backend..."
rm -rf backend/dist
mkdir -p backend/dist
cp -r frontend/dist/* backend/dist/
cd backend && go build -ldflags="-X main.version=2.0.0" -o ../web-tail-pro ./cmd/server
@echo "Build complete: ./web-tail-pro"
dev-backend: ## Run backend in development mode
cd backend && go run ./cmd/server/main.go logs/*.log
dev-frontend: ## Run frontend in development mode
cd frontend && npm run dev
test: ## Run tests
cd backend && go test -v -race -coverprofile=coverage.out ./...
cd frontend && npm test
test-coverage: ## Generate test coverage report
cd backend && go test -v -race -coverprofile=coverage.out ./... && go tool cover -html=coverage.out
lint: ## Run linters
cd backend && golangci-lint run
cd frontend && npm run lint
fmt: ## Format code
cd backend && go fmt ./...
cd frontend && npm run format
docker-build: ## Build Docker image
docker build -t webtail:latest .
docker-run: ## Run Docker container
docker run -p 8080:8080 -v $(PWD)/backend/logs:/logs:ro webtail:latest /logs/app.log
docker-compose-up: ## Start with docker-compose
docker-compose up -d
docker-compose-down: ## Stop docker-compose
docker-compose down
clean: ## Clean build artifacts
rm -rf backend/dist
rm -rf frontend/dist
rm -rf frontend/node_modules
rm -f web-tail-pro
rm -f backend/coverage.out
deps: ## Install dependencies
cd backend && go mod download
cd frontend && npm install --legacy-peer-deps
update-deps: ## Update dependencies
cd backend && go get -u ./... && go mod tidy
cd frontend && npm update
.DEFAULT_GOAL := help