Spaces:
Running
Running
| #!/usr/bin/env python3 | |
| """ | |
| Pre-deployment validation script for MathPulse AI backend. | |
| This script runs BEFORE deployment to catch issues early and prevent | |
| restart loops on HF Spaces. | |
| Usage: | |
| python backend/pre_deploy_check.py | |
| Exit codes: | |
| 0: All checks passed, safe to deploy | |
| 1: Critical issue found, deployment should be blocked | |
| """ | |
| import sys | |
| import os | |
| # Add backend to path | |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) | |
| def main() -> int: | |
| """Run pre-deployment checks.""" | |
| print("=" * 70) | |
| print("๐ PRE-DEPLOYMENT VALIDATION - Backend will run these checks") | |
| print("=" * 70) | |
| print() | |
| try: | |
| # Import the validation module | |
| from backend.startup_validation import ( | |
| validate_imports, | |
| validate_environment, | |
| validate_config_files, | |
| validate_file_structure, | |
| validate_inference_client_config, | |
| ) | |
| print("Running pre-deployment checks...\n") | |
| validate_file_structure() | |
| print() | |
| validate_imports() | |
| print() | |
| validate_environment() | |
| print() | |
| validate_config_files() | |
| print() | |
| validate_inference_client_config() | |
| print() | |
| print("=" * 70) | |
| print("โ PRE-DEPLOYMENT VALIDATION PASSED") | |
| print("=" * 70) | |
| print() | |
| print("Backend is ready for deployment to HF Spaces.") | |
| print() | |
| return 0 | |
| except Exception as e: | |
| print() | |
| print("=" * 70) | |
| print("โ PRE-DEPLOYMENT VALIDATION FAILED") | |
| print("=" * 70) | |
| print() | |
| print(f"Error: {e}") | |
| print() | |
| print("๐ BLOCK DEPLOYMENT - Fix errors above before pushing to main branch") | |
| print() | |
| return 1 | |
| if __name__ == "__main__": | |
| sys.exit(main()) | |