67 lines
1.7 KiB
PowerShell
67 lines
1.7 KiB
PowerShell
param(
|
|
[Parameter(Mandatory = $false)]
|
|
[string]$CaddyExe = "caddy",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[string]$CaddyfilePath = ".\deploy\Caddyfile",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[string]$ProxyBaseUrl = "http://localhost:8080",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[int]$WarmupSeconds = 2
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
function Stop-CaddyIfRunning($proc) {
|
|
if ($null -ne $proc -and -not $proc.HasExited) {
|
|
try {
|
|
Stop-Process -Id $proc.Id -Force
|
|
} catch {}
|
|
}
|
|
}
|
|
|
|
Write-Host "Step 15 Local Proxy Test"
|
|
Write-Host "Caddy: $CaddyExe"
|
|
Write-Host "Caddyfile: $CaddyfilePath"
|
|
Write-Host "ProxyBaseUrl: $ProxyBaseUrl"
|
|
|
|
if (-not (Test-Path $CaddyfilePath)) {
|
|
throw "Caddyfile not found at: $CaddyfilePath"
|
|
}
|
|
if (-not (Test-Path ".\deploy\healthcheck.ps1")) {
|
|
throw "healthcheck.ps1 not found at: .\deploy\healthcheck.ps1"
|
|
}
|
|
|
|
# Ensure local upstream default matches typical backend port
|
|
if (-not $env:BACKEND_UPSTREAM_LOCAL -or $env:BACKEND_UPSTREAM_LOCAL.Trim().Length -eq 0) {
|
|
$env:BACKEND_UPSTREAM_LOCAL = "localhost:8000"
|
|
}
|
|
|
|
$caddyProc = $null
|
|
try {
|
|
Write-Host "Starting Caddy..."
|
|
$caddyProc = Start-Process -FilePath $CaddyExe -ArgumentList @(
|
|
"run",
|
|
"--config", $CaddyfilePath,
|
|
"--adapter", "caddyfile"
|
|
) -PassThru -WindowStyle Hidden
|
|
|
|
Start-Sleep -Seconds $WarmupSeconds
|
|
|
|
Write-Host "Running healthcheck via proxy..."
|
|
& .\deploy\healthcheck.ps1 -BaseUrl $ProxyBaseUrl
|
|
if ($LASTEXITCODE -ne 0) {
|
|
throw "healthcheck.ps1 failed with exit code $LASTEXITCODE"
|
|
}
|
|
|
|
Write-Host "OK Step 15 local proxy test passed."
|
|
} catch {
|
|
Write-Host "FAIL Step 15 local proxy test: $($_.Exception.Message)"
|
|
throw
|
|
} finally {
|
|
Write-Host "Stopping Caddy..."
|
|
Stop-CaddyIfRunning $caddyProc
|
|
}
|