Files
geointel/scripts/run_readiness_check.sh
Jens faeb58ef6d
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
Initial public release
2026-08-31 21:56:53 +02:00

187 lines
9.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"
if [ -n "${PYTHON_BIN:-}" ]; then
PYTHON_BIN="${PYTHON_BIN}"
else
PYTHON_BIN=""
for candidate in python3 python.exe python; do
if command -v "${candidate}" >/dev/null 2>&1 && "${candidate}" -c "import sys, pytest" >/dev/null 2>&1; then
PYTHON_BIN="${candidate}"
break
fi
done
if [ -z "${PYTHON_BIN}" ]; then
for candidate in python3 python.exe python; do
if command -v "${candidate}" >/dev/null 2>&1 && "${candidate}" -c "import sys" >/dev/null 2>&1; then
PYTHON_BIN="${candidate}"
break
fi
done
fi
fi
if [ -z "${PYTHON_BIN}" ]; then
echo "No usable python interpreter found" >&2
exit 1
fi
NODE_BIN=""
for candidate in node node.exe; do
if command -v "${candidate}" >/dev/null 2>&1; then
NODE_BIN="${candidate}"
break
fi
done
if [ -z "${NODE_BIN}" ]; then
echo "No usable Node.js interpreter found" >&2
exit 1
fi
echo "== GeoIntel run readiness check =="
"$PYTHON_BIN" -m py_compile scripts/capture_release_evidence.py
"$PYTHON_BIN" -m py_compile scripts/build_release_package.py
"$PYTHON_BIN" -m py_compile scripts/verify_python_lock.py
"$PYTHON_BIN" scripts/verify_python_lock.py
"$PYTHON_BIN" -m py_compile scripts/verify_repository_layout.py
"$PYTHON_BIN" scripts/verify_repository_layout.py
"$PYTHON_BIN" -m py_compile scripts/check_repository_hygiene.py
"$PYTHON_BIN" scripts/check_repository_hygiene.py
"$PYTHON_BIN" -m py_compile scripts/verify_security_exceptions.py
"$PYTHON_BIN" scripts/verify_security_exceptions.py
bash -n scripts/backup_release_state.sh
bash -n scripts/verify_release_backup.sh
bash -n scripts/restore_release_backup_smoke.sh
bash -n scripts/rotate_postgres_password.sh
bash -n scripts/generate_python_lock.sh
bash -n scripts/generate_container_sbom.sh
bash -n scripts/scan_container_image.sh
bash -n scripts/audit_python_dependencies.sh
echo "Using Python: ${PYTHON_BIN}"
bash scripts/check_repo_structure.sh
"$PYTHON_BIN" -m ruff check backend scripts tests
${PYTHON_BIN} scripts/smoke_docs.py
${PYTHON_BIN} scripts/validate_fixtures.py
${PYTHON_BIN} scripts/smoke_contracts.py
${PYTHON_BIN} scripts/audit_api_contracts.py
${PYTHON_BIN} scripts/preimplementation_audit.py
${PYTHON_BIN} scripts/validate_m13_codex_assets.py
${PYTHON_BIN} scripts/validate_m14_launch_assets.py
${PYTHON_BIN} scripts/run_golden_qa_benchmark.py --json >/dev/null
${PYTHON_BIN} -m py_compile scripts/gis_import_smoke.py
${PYTHON_BIN} -m py_compile scripts/seed_demo_workflow.py
${PYTHON_BIN} -m py_compile scripts/yolo_preflight.py
${PYTHON_BIN} -m py_compile backend/scripts/yolo_preflight.py
${PYTHON_BIN} -m py_compile scripts/prepare_operator_real_data_samples.py
${PYTHON_BIN} -m py_compile scripts/provision_mol_municipality_workspace.py
${PYTHON_BIN} -m py_compile scripts/provision_mol_context_layers.py
${PYTHON_BIN} -m py_compile scripts/provision_mol_population_history.py
${PYTHON_BIN} -m py_compile scripts/statbel_population_preflight.py
${PYTHON_BIN} -m py_compile scripts/manage_statbel_population_release.py
${PYTHON_BIN} -m py_compile scripts/provision_mol_historical_landuse.py
${PYTHON_BIN} -m py_compile scripts/provision_regional_historical_landuse.py
${PYTHON_BIN} -m py_compile scripts/provision_official_landuse_timeseries.py
${PYTHON_BIN} -m py_compile scripts/provision_waterinfo_station_history.py
${PYTHON_BIN} -m py_compile scripts/provision_flanders_geographic_scope.py
${PYTHON_BIN} -m py_compile scripts/provision_flanders_bathymetry_profiles.py
${PYTHON_BIN} -m py_compile scripts/probe_mdk_bathymetry.py
${PYTHON_BIN} -m py_compile scripts/import_spw_bathymetry.py
${PYTHON_BIN} -m py_compile scripts/provision_walous_sources.py
${PYTHON_BIN} -m py_compile scripts/provision_spw_terrain_source.py
${PYTHON_BIN} -m py_compile scripts/provision_mol_bwk_natura2000.py
${PYTHON_BIN} -m py_compile scripts/provision_regional_bwk_natura2000.py
${PYTHON_BIN} -m py_compile scripts/provision_agricultural_parcel_history.py
${PYTHON_BIN} -m py_compile scripts/manage_alz_agriculture_release.py
${PYTHON_BIN} -m py_compile scripts/orthophoto_release_preflight.py
${PYTHON_BIN} -m py_compile scripts/manage_orthophoto_release.py
${PYTHON_BIN} -m py_compile scripts/provision_buildings_addresses_register.py
${PYTHON_BIN} -m py_compile scripts/provision_mol_dhmv.py
${PYTHON_BIN} -m py_compile scripts/provision_mol_bathymetry_profiles.py
${PYTHON_BIN} -m py_compile scripts/provision_regional_dhmv.py
${PYTHON_BIN} -m py_compile scripts/provision_mol_flood_hazards.py
${PYTHON_BIN} -m py_compile scripts/provision_regional_flood_hazards.py
${PYTHON_BIN} -m py_compile scripts/provision_thematic_rasters.py
${PYTHON_BIN} -m py_compile scripts/provision_mol_soil_map.py
${PYTHON_BIN} -m py_compile scripts/provision_regional_soil_map.py
${PYTHON_BIN} -m py_compile scripts/provision_regional_timeseries.py
${PYTHON_BIN} -m py_compile scripts/geographic_scopes.py
${PYTHON_BIN} -m py_compile scripts/provision_geographic_scope.py
${PYTHON_BIN} -m py_compile scripts/provision_belgium_north_sea_scope.py
${PYTHON_BIN} -m py_compile scripts/provision_release_golden_areas.py
${PYTHON_BIN} -m py_compile scripts/provision_regional_grb_buildings.py
${PYTHON_BIN} -m py_compile scripts/provision_regional_grb_context.py
${PYTHON_BIN} -m py_compile scripts/audit_source_freshness.py
${PYTHON_BIN} -m py_compile scripts/manage_grb_refresh.py
${PYTHON_BIN} -m py_compile scripts/export_operator_yolo_dataset.py
${PYTHON_BIN} -m py_compile scripts/export_operator_yolo_tile_dataset.py
${PYTHON_BIN} -m py_compile scripts/training_dataset_eligibility.py
${PYTHON_BIN} -m py_compile scripts/training_release_manifest.py
${PYTHON_BIN} -m py_compile scripts/run_belgium_building_training_loop.py
${PYTHON_BIN} -m py_compile scripts/build_failure_driven_yolo_sampling.py
${PYTHON_BIN} -m py_compile scripts/audit_operator_yolo_dataset_quality.py
${PYTHON_BIN} -m py_compile scripts/build_detection_model_promotion_report.py
${PYTHON_BIN} -m py_compile scripts/build_mol_operational_benchmark_report.py
${PYTHON_BIN} -m py_compile scripts/build_background_corpus_split_report.py
${PYTHON_BIN} -m py_compile scripts/build_fixed_threshold_evidence_portfolio_inputs.py
${PYTHON_BIN} -m py_compile scripts/audit_detection_false_negative_evidence.py
${PYTHON_BIN} -m py_compile scripts/audit_detection_false_positive_evidence.py
${PYTHON_BIN} -m py_compile scripts/render_detection_false_positive_review_contact_sheets.py
${PYTHON_BIN} -m py_compile scripts/render_detection_false_negative_review_contact_sheets.py
${PYTHON_BIN} -m py_compile scripts/validate_detection_false_positive_review_decisions.py
${PYTHON_BIN} -m py_compile scripts/validate_detection_false_negative_review_decisions.py
${PYTHON_BIN} -m py_compile scripts/activate_promoted_yolo_candidate.py
${PYTHON_BIN} -m py_compile scripts/migrate_runtime_model_provenance.py
${PYTHON_BIN} -m py_compile scripts/cleanup_demo_artifacts.py
${PYTHON_BIN} -m py_compile scripts/archive_technical_projects.py
${PYTHON_BIN} -m py_compile scripts/release_backup_guard.py
${PYTHON_BIN} -m py_compile scripts/release_backup_snapshot.py
${PYTHON_BIN} -m py_compile scripts/audit_data_operations.py
${PYTHON_BIN} -m py_compile scripts/cleanup_storage_artifacts.py
${PYTHON_BIN} -m py_compile scripts/restore_storage_quarantine.py
${PYTHON_BIN} -m py_compile backend/scripts/cleanup_demo_artifacts.py
${PYTHON_BIN} -m compileall backend/app
(cd backend && ${PYTHON_BIN} -m pytest -W error::DeprecationWarning)
(cd backend && ${PYTHON_BIN} -m alembic heads)
(cd frontend && npm run test:unit)
(cd frontend && npm run typecheck)
(cd frontend && npm run build)
"${NODE_BIN}" --check frontend/e2e/releaseJourneys.mjs
"${NODE_BIN}" --check frontend/e2e/uxAudit.mjs
bash -n scripts/live_migration_smoke.sh
bash -n scripts/deploy_tower.sh
bash -n scripts/verify_release_fresh_install.sh
bash -n scripts/verify_release_upgrade_smoke.sh
bash -n deploy/unraid/all-in-one-start.sh
bash -n deploy/unraid/gosu-setpriv
bash -n deploy/unraid/run-dockerman-container.sh
bash -n deploy/unraid/deploy-release.sh
bash -n deploy/unraid/rollback-dockerman-container.sh
bash -n deploy/unraid/restore-predeploy-database.sh
bash -n scripts/verify_browser_runtime.sh
bash -n scripts/verify_demo_export_workflow.sh
bash -n scripts/verify_demo_raster_workflow.sh
bash -n scripts/verify_ai_handoff_interactions.sh
bash -n scripts/verify_model_asset_detection_workflow.sh
bash -n scripts/verify_real_data_detection_qa_workflow.sh
bash -n scripts/run_detection_calibration_sweep.sh
bash -n scripts/export_detection_calibration_evidence.sh
bash -n scripts/smoke_detection_calibration_evidence_bundle.sh
bash -n scripts/assemble_detection_calibration_evidence_portfolio.sh
bash -n scripts/run_detection_quality_matrix.sh
bash -n scripts/run_multi_sample_detection_quality_matrix.sh
bash -n scripts/run_mol_operational_validation.sh
bash -n scripts/run_operator_hard_negative_detection_matrix.sh
bash -n scripts/run_background_corpus_split_matrix.sh
bash -n scripts/run_split_background_promotion_workflow.sh
bash -n scripts/train_operator_yolo_detector.sh
bash -n scripts/verify_workbench_default_state.sh
bash -n scripts/verify_workbench_interactions.sh
bash -n scripts/verify_gis_runtime.sh
bash -n scripts/verify_golden_qa_benchmark.sh
bash -n scripts/verify_demo_cleanup_dry_run.sh
bash -n scripts/capture_workbench_screenshots.sh
bash -n scripts/run_rc8_release_journeys.sh
bash -n scripts/run_rc9_ux_audit.sh
bash -n scripts/run_rc10_data_operations_audit.sh
echo "== Run readiness check passed =="