Files
aza/AzA march 2026 - Kopie (16)/deploy/step15_local_proxy_test.ps1
2026-04-19 20:41:37 +02:00

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
}