This repository was archived by the owner on Aug 2, 2026. It is now read-only.
forked from wanetty/upgopher
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
63 lines (49 loc) · 2 KB
/
Copy pathMakefile
File metadata and controls
63 lines (49 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
.PHONY: help build test test-race test-coverage test-short lint clean run
# Variables
BINARY_NAME=upgopher
COVERAGE_FILE=coverage.out
help: ## Muestra esta ayuda
@echo "Comandos disponibles:"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}'
build: ## Compila el proyecto
@echo "Compilando..."
go build -o $(BINARY_NAME) -ldflags="-s -w"
@echo "✅ Compilación exitosa: ./$(BINARY_NAME)"
test: ## Ejecuta todos los tests
@echo "Ejecutando tests..."
go test -v ./...
test-race: ## Ejecuta tests con detección de race conditions
@echo "Ejecutando tests con race detector..."
go test -race -v ./...
test-coverage: ## Ejecuta tests con cobertura
@echo "Ejecutando tests con cobertura..."
go test -cover -coverprofile=$(COVERAGE_FILE) ./...
@echo "\nCobertura detallada:"
go tool cover -func=$(COVERAGE_FILE)
@echo "\nPara ver cobertura en HTML: go tool cover -html=$(COVERAGE_FILE)"
test-short: ## Ejecuta tests rápidos (sin tests largos)
@echo "Ejecutando tests rápidos..."
go test -v -short ./...
lint: ## Ejecuta análisis estático (go vet)
@echo "Ejecutando linters..."
go vet ./...
@echo "✅ Análisis completado"
clean: ## Elimina binarios y archivos temporales
@echo "Limpiando..."
rm -f $(BINARY_NAME)
rm -f $(COVERAGE_FILE)
@echo "✅ Limpieza completada"
run: build ## Compila y ejecuta el servidor (puerto 9090)
@echo "Iniciando servidor..."
./$(BINARY_NAME)
run-auth: build ## Ejecuta el servidor con autenticación (user: admin, pass: admin)
@echo "Iniciando servidor con autenticación..."
./$(BINARY_NAME) -user admin -pass admin
run-ssl: build ## Ejecuta el servidor con HTTPS (certificado auto-firmado)
@echo "Iniciando servidor con HTTPS..."
./$(BINARY_NAME) -ssl
# Targets de desarrollo
dev: test-race lint ## Ejecuta tests con race detector y linters
@echo "✅ Checks de desarrollo completados"
ci: test-race lint build ## Pipeline completo de CI
@echo "✅ Pipeline CI completado exitosamente"