# Northern Thailand Ping River Monitor - Makefile .PHONY: help install install-dev test test-coverage lint format clean run run-api docker-build docker-run docs # Default target help: @echo "Northern Thailand Ping River Monitor - Available Commands:" @echo "" @echo "Setup:" @echo " install Install production dependencies" @echo " install-dev Install development dependencies" @echo "" @echo "Development:" @echo " test Run all tests" @echo " test-cov Run tests with coverage report" @echo " lint Run code linting" @echo " format Format code with black and isort" @echo " clean Clean up temporary files" @echo "" @echo "Running:" @echo " run Run the monitor in continuous mode" @echo " run-api Run the web API server" @echo " run-test Run a single test cycle" @echo "" @echo "Docker:" @echo " docker-build Build Docker image" @echo " docker-run Run with Docker Compose" @echo " docker-stop Stop Docker services" @echo "" @echo "Documentation:" @echo " docs Generate documentation" # Installation install: pip install -r requirements.txt install-dev: pip install -r requirements-dev.txt pre-commit install # Testing test: python test_integration.py python test_station_management.py test-cov: pytest --cov=src --cov-report=html --cov-report=term # Code quality lint: flake8 src/ --max-line-length=100 mypy src/ format: black src/ *.py isort src/ *.py # Cleanup clean: find . -type f -name "*.pyc" -delete find . -type d -name "__pycache__" -delete find . -type f -name "*.log" -delete rm -rf .pytest_cache/ rm -rf .mypy_cache/ rm -rf htmlcov/ rm -rf dist/ rm -rf build/ rm -rf *.egg-info/ # Running run: python run.py run-api: python run.py --web-api run-test: python run.py --test run-status: python run.py --status # Docker docker-build: docker build -t ping-river-monitor . docker-run: docker-compose -f docker-compose.victoriametrics.yml up -d docker-stop: docker-compose -f docker-compose.victoriametrics.yml down docker-logs: docker-compose -f docker-compose.victoriametrics.yml logs -f # Documentation docs: cd docs && make html # Database management db-migrate: python scripts/migrate_geolocation.py # Monitoring health-check: curl -f http://localhost:8000/health || exit 1 metrics: curl -s http://localhost:8000/metrics | jq . # Development helpers dev-setup: install-dev cp .env.example .env @echo "Development environment set up!" @echo "Edit .env file with your configuration" # Production deployment deploy-check: python run.py --test @echo "Deployment check passed!" # Git helpers git-setup: git remote add origin https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor.git @echo "Git remote configured!" # Quick start quick-start: install dev-setup run-test @echo "Quick start completed!" @echo "Run 'make run-api' to start the web interface" # Gitea Actions validate-workflows: @echo "Validating Gitea Actions workflows..." @for file in .gitea/workflows/*.yml; do \ echo "Checking $$file..."; \ python -c "import yaml; yaml.safe_load(open('$$file', encoding='utf-8'))" || exit 1; \ done @echo "✅ All workflows are valid" workflow-test: @echo "Testing workflow components locally..." make test make lint make format @echo "✅ Workflow test completed"