Edwin Salguero
Enterprise: Clean up directory structure and add proper CI/CD, monitoring, and deployment configurations
10d71ba
| .PHONY: help install test lint format clean build run deploy | |
| help: ## Show this help message | |
| @echo 'Usage: make [target]' | |
| @echo '' | |
| @echo 'Targets:' | |
| @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-15s %s\n", $$1, $$2}' $(MAKEFILE_LIST) | |
| install: ## Install dependencies | |
| pip install -e . | |
| pip install -e ".[dev]" | |
| pre-commit install | |
| test: ## Run tests | |
| pytest tests/ -v --cov=src --cov-report=html --cov-report=xml | |
| lint: ## Run linting | |
| flake8 src/ tests/ | |
| mypy src/ | |
| format: ## Format code | |
| black src/ tests/ | |
| isort src/ tests/ | |
| clean: ## Clean build artifacts | |
| find . -type f -name "*.pyc" -delete | |
| find . -type d -name "__pycache__" -delete | |
| rm -rf .pytest_cache/ | |
| rm -rf htmlcov/ | |
| rm -rf build/ | |
| rm -rf dist/ | |
| rm -rf *.egg-info/ | |
| build: ## Build Docker image | |
| docker build -t fred-ml . | |
| run: ## Run application locally | |
| uvicorn src.main:app --reload --host 0.0.0.0 --port 8000 | |
| run-docker: ## Run with Docker Compose (development) | |
| docker-compose -f deploy/docker/docker-compose.dev.yml up --build | |
| run-prod: ## Run with Docker Compose (production) | |
| docker-compose -f deploy/docker/docker-compose.prod.yml up --build | |
| deploy: ## Deploy to Kubernetes | |
| kubectl apply -f deploy/kubernetes/ | |
| deploy-helm: ## Deploy with Helm | |
| helm install fred-ml deploy/helm/ | |
| logs: ## View application logs | |
| docker-compose -f deploy/docker/docker-compose.dev.yml logs -f fred-ml | |
| shell: ## Open shell in container | |
| docker-compose -f deploy/docker/docker-compose.dev.yml exec fred-ml bash | |
| migrate: ## Run database migrations | |
| alembic upgrade head | |
| setup-dev: install format lint test ## Setup development environment | |
| ci: test lint format ## Run CI checks locally | |
| package: clean build ## Build package for distribution | |
| python -m build | |
| publish: package ## Publish to PyPI | |
| twine upload dist/* |