initial commit
This commit is contained in:
83
Makefile
Normal file
83
Makefile
Normal file
@@ -0,0 +1,83 @@
|
||||
# Makefile for Flask Balotario Application
|
||||
# Provides convenient commands for development and deployment
|
||||
|
||||
.PHONY: help install install-dev install-test clean test lint format run docker-build docker-run
|
||||
|
||||
# Default target
|
||||
help:
|
||||
@echo "Available commands:"
|
||||
@echo " install - Install production dependencies"
|
||||
@echo " install-dev - Install development dependencies"
|
||||
@echo " clean - Clean up cache and temporary files"
|
||||
@echo " test - Run tests with coverage"
|
||||
@echo " lint - Run linting checks"
|
||||
@echo " format - Format code with black and isort"
|
||||
@echo " security - Run security checks"
|
||||
@echo " run - Run development server"
|
||||
@echo " run-prod - Run production server with gunicorn"
|
||||
@echo " docker-build - Build Docker image"
|
||||
@echo " docker-run - Run Docker container"
|
||||
@echo " download-images - Download all images locally"
|
||||
@echo " verify-images - Verify all images are available"
|
||||
|
||||
# Installation targets
|
||||
install:
|
||||
pip install -r requirements.txt
|
||||
|
||||
install-dev:
|
||||
pip install -r requirements-dev.txt
|
||||
|
||||
# Development targets
|
||||
clean:
|
||||
find . -type f -name "*.pyc" -delete
|
||||
find . -type d -name "__pycache__" -delete
|
||||
find . -type d -name "*.egg-info" -exec rm -rf {} +
|
||||
rm -rf .pytest_cache
|
||||
rm -rf .coverage
|
||||
rm -rf htmlcov/
|
||||
|
||||
test:
|
||||
pytest --cov=. --cov-report=html --cov-report=term-missing
|
||||
|
||||
lint:
|
||||
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||||
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||||
|
||||
format:
|
||||
black .
|
||||
isort .
|
||||
|
||||
security:
|
||||
bandit -r . -x tests/
|
||||
safety check
|
||||
|
||||
# Server targets
|
||||
run:
|
||||
python app.py
|
||||
|
||||
run-prod:
|
||||
gunicorn --bind 0.0.0.0:5000 --workers 4 app:app
|
||||
|
||||
# Docker targets
|
||||
docker-build:
|
||||
docker build -t driving-academy .
|
||||
|
||||
docker-run:
|
||||
docker run -p 5000:5000 driving-academy
|
||||
|
||||
# Image management
|
||||
download-images:
|
||||
python scripts/download_images.py
|
||||
|
||||
verify-images:
|
||||
python scripts/verify_images.py
|
||||
|
||||
# Development setup (complete environment)
|
||||
setup-dev: install-dev download-images
|
||||
@echo "Development environment ready!"
|
||||
@echo "Run 'make run' to start the development server"
|
||||
|
||||
# Production setup
|
||||
setup-prod: install
|
||||
@echo "Production environment ready!"
|
||||
@echo "Run 'make run-prod' to start the production server"
|
||||
Reference in New Issue
Block a user