Spaces:
Sleeping
Sleeping
File size: 2,446 Bytes
66a0674 | 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 64 65 66 67 68 69 70 71 72 73 | # Makefile pour FastAPI avec Poetry et Docker
.PHONY: help build up down restart logs shell db-shell test lint format clean install migrate seed backup restore
# Variables
DOCKER_COMPOSE = docker-compose
SERVICE_API = api
SERVICE_DB = db
PYTHON_FILES = src/project5/ tests/ docs/
PROJECT_NAME = project5
# Format des images par default
FORMAT=png
# Couleurs pour l'affichage
GREEN = \033[0;32m
YELLOW = \033[0;33m
RED = \033[0;31m
NC = \033[0m
# Help - Affiche l'aide
help: ## Affiche cette aide
@echo "$(GREEN)Makefile pour $(PROJECT_NAME) - FastAPI avec Poetry$(NC)"
@echo ""
@echo "$(YELLOW)Developpement LOCAL (recommande):$(NC)"
@grep -E '^[a-zA-Z_-]*-local:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(YELLOW)%-25s$(NC) %s\n", $$1, $$2}'
# Developpement local (sans Docker)
dev-local: ## Lance l'API en local avec Poetry
@echo "$(GREEN)Demarrage local avec Poetry...$(NC)"
poetry run uvicorn src.$(PROJECT_NAME).main:app --host 0.0.0.0 --port 8000 --reload
start-local: ## Alias pour dev-local
$(MAKE) dev-local
install-local: ## Installe les dependances avec Poetry
@echo "$(GREEN)Installation des dependances avec Poetry...$(NC)"
poetry install
update-local: ## Met a jour les dependances
@echo "$(GREEN)Mise a jour des dependances...$(NC)"
poetry update
# Qualite de code (local)
lint-local: ## Verifie le code avec flake8 et mypy en local
@echo "$(GREEN)Verification du code en local...$(NC)"
poetry run flake8 $(PYTHON_FILES)
poetry run mypy $(PYTHON_FILES) --ignore-missing-imports
format-local: ## Formate le code avec black et isort en local
@echo "$(GREEN)Formatage du code en local...$(NC)"
poetry run black $(PYTHON_FILES)
poetry run isort $(PYTHON_FILES)
format-check-local: ## Verifie le formatage sans modifier en local
@echo "$(GREEN)Verification du formatage en local...$(NC)"
poetry run black --check $(PYTHON_FILES)
poetry run isort --check-only $(PYTHON_FILES)
check-local: format-check-local lint-local ## Verifie le formatage et la qualite du code en local
# Tests local
test-local: ## Lance les tests en local avec Poetry
@echo "$(GREEN)Execution des tests en local...$(NC)"
poetry run pytest -v
test-cov-local: ## Lance les tests avec couverture en local
@echo "$(GREEN)Tests avec couverture en local...$(NC)"
poetry run pytest --cov=src/$(PROJECT_NAME) --cov-report=html --cov-report=term-missing
# Commande par defaut
.DEFAULT_GOAL := help |