Files
proxmox/scripts/run-full-e2e-validation.sh

80 lines
3.4 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Full E2E validation for all endpoints (RPC HTTP/WS, block production, optional deployment checks).
# Usage: ./scripts/run-full-e2e-validation.sh
# Run from a host that can reach public RPC (76.53.10.36 → NPMplus → backends) for passing results.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
cd "$PROJECT_ROOT"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
log_section() { echo -e "\n${CYAN}════════════════════════════════════════════════════════════════${NC}\n${CYAN}$1${NC}\n${CYAN}════════════════════════════════════════════════════════════════${NC}\n"; }
echo ""
log_section "Full E2E validation — all endpoints"
echo "Started: $(date -Iseconds 2>/dev/null || date)"
echo ""
# 0. UDM Pro configuration check (port forwarding, DNS, NPMplus)
log_section "0. UDM Pro configuration check (before E2E)"
if [ -x "$SCRIPT_DIR/check-udm-pro-config-before-e2e.sh" ]; then
if "$SCRIPT_DIR/check-udm-pro-config-before-e2e.sh"; then
echo -e "${GREEN}✅ UDM Pro config check: PASSED${NC}"
else
echo -e "${YELLOW}⚠ UDM Pro config check: fix port forwarding or DNS, then re-run.${NC}"
fi
else
echo -e "${YELLOW}⚠ check-udm-pro-config-before-e2e.sh not found; skipping.${NC}"
fi
# 1. Block production + chainlist RPC E2E (HTTP + WebSocket)
log_section "1. Block production & chainlist RPC E2E (HTTP + WebSocket)"
if [ -x "$SCRIPT_DIR/check-block-production-and-chainlist-e2e.sh" ]; then
if "$SCRIPT_DIR/check-block-production-and-chainlist-e2e.sh"; then
echo -e "${GREEN}✅ Block production + chainlist E2E: PASSED${NC}"
E2E_RPC=0
else
echo -e "${RED}❌ Block production + chainlist E2E: FAILED (see above)${NC}"
E2E_RPC=1
fi
else
echo -e "${YELLOW}⚠ check-block-production-and-chainlist-e2e.sh not found or not executable${NC}"
E2E_RPC=2
fi
# 2. Optional: complete validation (prerequisites, deployment, connection) if scripts exist
log_section "2. Optional: deployment/prerequisites validation"
if [ -f "$SCRIPT_DIR/check-prerequisites.sh" ] && [ -f "$SCRIPT_DIR/validate-ml110-deployment.sh" ] && [ -f "$SCRIPT_DIR/test-connection.sh" ]; then
if "$SCRIPT_DIR/complete-validation.sh" 2>/dev/null; then
echo -e "${GREEN}✅ Complete validation: PASSED${NC}"
else
echo -e "${YELLOW}⚠ Complete validation: one or more steps failed${NC}"
fi
else
echo -e "${YELLOW}⚠ Skipped (check-prerequisites.sh / validate-ml110-deployment.sh / test-connection.sh not all in scripts/)${NC}"
fi
# Summary
log_section "E2E validation summary"
echo "Finished: $(date -Iseconds 2>/dev/null || date)"
echo ""
if [ "${E2E_RPC:-2}" -eq 0 ]; then
echo -e "${GREEN}✅ Full E2E: RPC endpoints passed.${NC}"
exit 0
elif [ "${E2E_RPC:-2}" -eq 1 ]; then
echo -e "${RED}❌ Full E2E: RPC endpoints failed. Run from a host that can reach 76.53.10.36 (UDM Pro → NPMplus).${NC}"
echo -e "${YELLOW} Diagnose: ./scripts/diagnose-rpc-response.sh${NC}"
exit 1
else
echo -e "${YELLOW}⚠ Full E2E: RPC script not run.${NC}"
exit 2
fi