forked from val-lop20/Pagina-de-Asistencia-MAC
108 lines
3.5 KiB
Makefile
108 lines
3.5 KiB
Makefile
# Makefile para comandos comunes del proyecto
|
|
|
|
.PHONY: help install install-dev lint format test coverage clean run migrate shell
|
|
|
|
# Variables
|
|
PYTHON := python
|
|
PIP := pip
|
|
MANAGE := $(PYTHON) manage.py
|
|
|
|
# Colores para output
|
|
BLUE := \033[0;34m
|
|
GREEN := \033[0;32m
|
|
YELLOW := \033[1;33m
|
|
NC := \033[0m # No Color
|
|
|
|
help: ## Mostrar ayuda
|
|
@echo "$(GREEN)Comandos disponibles:$(NC)"
|
|
@echo ""
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(BLUE)%-20s$(NC) %s\n", $$1, $$2}'
|
|
@echo ""
|
|
|
|
install: ## Instalar dependencias de producción
|
|
@echo "$(YELLOW)Instalando dependencias de producción...$(NC)"
|
|
$(PIP) install -r requirements.txt
|
|
@echo "$(GREEN)✓ Dependencias instaladas$(NC)"
|
|
|
|
install-dev: install ## Instalar dependencias de desarrollo
|
|
@echo "$(YELLOW)Instalando dependencias de desarrollo...$(NC)"
|
|
$(PIP) install -r requirements-dev.txt
|
|
@echo "$(GREEN)✓ Dependencias de desarrollo instaladas$(NC)"
|
|
@echo ""
|
|
@echo "$(YELLOW)Instalando pre-commit hooks...$(NC)"
|
|
pre-commit install
|
|
@echo "$(GREEN)✓ Pre-commit hooks instalados$(NC)"
|
|
|
|
lint: ## Ejecutar linters (flake8, pylint, bandit)
|
|
@echo "$(YELLOW)Ejecutando análisis de código...$(NC)"
|
|
@bash scripts/lint.sh
|
|
|
|
format: ## Formatear código automáticamente (black, isort, autopep8)
|
|
@echo "$(YELLOW)Formateando código...$(NC)"
|
|
@bash scripts/format.sh
|
|
|
|
test: ## Ejecutar tests
|
|
@echo "$(YELLOW)Ejecutando tests...$(NC)"
|
|
pytest -v
|
|
|
|
coverage: ## Ejecutar tests con cobertura
|
|
@echo "$(YELLOW)Ejecutando tests con cobertura...$(NC)"
|
|
pytest --cov=. --cov-report=html --cov-report=term-missing
|
|
@echo ""
|
|
@echo "$(GREEN)✓ Reporte de cobertura generado en htmlcov/index.html$(NC)"
|
|
|
|
clean: ## Limpiar archivos temporales
|
|
@echo "$(YELLOW)Limpiando archivos temporales...$(NC)"
|
|
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
|
|
find . -type f -name "*.pyc" -delete
|
|
find . -type f -name "*.pyo" -delete
|
|
find . -type f -name "*.coverage" -delete
|
|
find . -type d -name "*.egg-info" -exec rm -rf {} + 2>/dev/null || true
|
|
find . -type d -name ".pytest_cache" -exec rm -rf {} + 2>/dev/null || true
|
|
rm -rf htmlcov/ .coverage 2>/dev/null || true
|
|
@echo "$(GREEN)✓ Archivos temporales eliminados$(NC)"
|
|
|
|
run: ## Ejecutar servidor de desarrollo
|
|
@echo "$(YELLOW)Iniciando servidor de desarrollo...$(NC)"
|
|
$(MANAGE) runserver
|
|
|
|
migrate: ## Aplicar migraciones
|
|
@echo "$(YELLOW)Aplicando migraciones...$(NC)"
|
|
$(MANAGE) migrate
|
|
|
|
makemigrations: ## Crear migraciones
|
|
@echo "$(YELLOW)Creando migraciones...$(NC)"
|
|
$(MANAGE) makemigrations
|
|
|
|
shell: ## Abrir shell de Django
|
|
$(MANAGE) shell_plus --ipython || $(MANAGE) shell
|
|
|
|
superuser: ## Crear superusuario
|
|
$(MANAGE) createsuperuser
|
|
|
|
check: ## Verificar proyecto Django
|
|
@echo "$(YELLOW)Verificando proyecto...$(NC)"
|
|
$(MANAGE) check
|
|
|
|
collectstatic: ## Recolectar archivos estáticos
|
|
@echo "$(YELLOW)Recolectando archivos estáticos...$(NC)"
|
|
$(MANAGE) collectstatic --noinput
|
|
|
|
security: ## Verificar vulnerabilidades de seguridad
|
|
@echo "$(YELLOW)Verificando vulnerabilidades...$(NC)"
|
|
safety check
|
|
bandit -r . -c pyproject.toml
|
|
|
|
pre-commit-all: ## Ejecutar pre-commit en todos los archivos
|
|
@echo "$(YELLOW)Ejecutando pre-commit en todos los archivos...$(NC)"
|
|
pre-commit run --all-files
|
|
|
|
setup: install-dev migrate ## Setup inicial del proyecto
|
|
@echo ""
|
|
@echo "$(GREEN)✓ Setup completado$(NC)"
|
|
@echo ""
|
|
@echo "Próximos pasos:"
|
|
@echo " 1. Crea un superusuario: make superuser"
|
|
@echo " 2. Ejecuta el servidor: make run"
|
|
@echo " 3. Revisa la ayuda: make help"
|