33 lines
1.3 KiB
PowerShell
33 lines
1.3 KiB
PowerShell
param (
|
|
[string]$Port = "3000"
|
|
)
|
|
$HealthUrl = "http://127.0.0.1:$Port/ping"
|
|
$UiUrl = "http://127.0.0.1:$Port/?t=$(Get-Random)"
|
|
$ExpectedContent = "open-color" # Basic sanity check that we are serving the updated UI
|
|
|
|
Write-Host "Verifying server HEALTH at $HealthUrl..." -ForegroundColor Cyan
|
|
|
|
for ($i = 1; $i -le 40; $i++) {
|
|
try {
|
|
$healthResponse = Invoke-WebRequest -Uri $HealthUrl -UseBasicParsing -ErrorAction Stop
|
|
if ($healthResponse.StatusCode -eq 200) {
|
|
Write-Host "✅ Server /ping is UP! (Attempt $i)" -ForegroundColor Green
|
|
|
|
Write-Host "Verifying UI payload at $UiUrl..." -ForegroundColor Cyan
|
|
$uiResponse = Invoke-WebRequest -Uri $UiUrl -UseBasicParsing -ErrorAction Stop
|
|
if ($uiResponse.Content -match $ExpectedContent) {
|
|
Write-Host "✅ Server is serving the correct UI payload!" -ForegroundColor Green
|
|
exit 0
|
|
} else {
|
|
Write-Host "⚠️ Server is healthy but UI serving old cached content. Retrying..." -ForegroundColor Yellow
|
|
}
|
|
}
|
|
} catch {
|
|
Write-Host "⏳ Server /ping not responding yet... (Attempt $i)" -ForegroundColor Yellow
|
|
}
|
|
Start-Sleep -Seconds 1
|
|
}
|
|
|
|
Write-Error "❌ Deployment verification failed! /ping endpoint unreachable after 40 seconds."
|
|
exit 1
|