FREDML / Makefile
Edwin Salguero
Enterprise: Clean up directory structure and add proper CI/CD, monitoring, and deployment configurations
10d71ba
raw
history blame
1.8 kB
.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/*