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/* |