Source code for wads.scripts.validate_ci_env

#!/usr/bin/env python3
"""
CI Environment Validation Script

This script validates that all required environment variables are set
based on configuration in pyproject.toml [tool.wads.ci.env].

Usage:
    python -m wads.scripts.validate_ci_env

Exit codes:
    0 - All required environment variables are set
    1 - One or more required environment variables are missing
"""

import os
import sys
from pathlib import Path


[docs] def validate_ci_environment(pyproject_path: str | Path = ".") -> tuple[bool, list[str]]: """ Validate that all required CI environment variables are set. Args: pyproject_path: Path to directory containing pyproject.toml Returns: Tuple of (success, missing_vars) """ try: from wads.ci_config import CIConfig config = CIConfig.from_file(pyproject_path) required_vars = config.env_vars_required if not required_vars: return True, [] missing_vars = [var for var in required_vars if var not in os.environ] return len(missing_vars) == 0, missing_vars except FileNotFoundError: print("❌ pyproject.toml not found", file=sys.stderr) return False, [] except Exception as e: print(f"❌ Error reading CI config: {e}", file=sys.stderr) return False, []
[docs] def main(): """Main entry point for CI environment validation.""" print("🔍 Validating CI environment variables...") success, missing_vars = validate_ci_environment() if success: print("✅ All required environment variables are set") return 0 else: print("\n❌ Missing required environment variables:", file=sys.stderr) for var in missing_vars: print(f" - {var}", file=sys.stderr) print( "\nPlease configure these in your CI secrets or environment.", file=sys.stderr, ) return 1
if __name__ == "__main__": sys.exit(main())