Initial SQL-only 1C adapter baseline
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
param(
|
||||
[string]$DockerContext = "test-docker",
|
||||
[string]$ComposePath = "core/deploy/docker/1c-agent/compose.yaml",
|
||||
[string]$BaseUrl = "http://docker-test.cin.su:8090",
|
||||
[string]$ServiceName = "onec-agent",
|
||||
[switch]$WithTurnCheck,
|
||||
[int]$HealthTimeoutSec = 60,
|
||||
[int]$SmokeTimeoutSec = 5,
|
||||
[switch]$NoBuild
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
function Invoke-CheckedCommand {
|
||||
param(
|
||||
[string]$Label,
|
||||
[string[]]$Command
|
||||
)
|
||||
Write-Host "[run] $Label"
|
||||
$exe = $Command[0]
|
||||
$args = $Command[1..($Command.Length - 1)]
|
||||
Write-Host ("[cmd] {0} {1}" -f $exe, ($args -join " "))
|
||||
& $exe @args
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "$Label failed with code=$LASTEXITCODE"
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
Write-Host "[1] Deploying service '$ServiceName' on context $DockerContext"
|
||||
if ($NoBuild) {
|
||||
Invoke-CheckedCommand -Label "docker compose up" -Command @(
|
||||
"docker", "--context", $DockerContext, "compose", "-f", $ComposePath, "up", "-d", $ServiceName
|
||||
)
|
||||
} else {
|
||||
Invoke-CheckedCommand -Label "docker compose up --build" -Command @(
|
||||
"docker", "--context", $DockerContext, "compose", "-f", $ComposePath, "up", "-d", "--build", $ServiceName
|
||||
)
|
||||
}
|
||||
|
||||
Write-Host "[2] Waiting for health endpoint: $BaseUrl/v1/health"
|
||||
$stopAt = (Get-Date).AddSeconds($HealthTimeoutSec)
|
||||
do {
|
||||
try {
|
||||
$response = Invoke-RestMethod -Uri "$BaseUrl/v1/health" -Method Get -TimeoutSec 5
|
||||
if ($response.status -eq "ok") {
|
||||
Write-Host "[ok] service is healthy"
|
||||
break
|
||||
}
|
||||
} catch {
|
||||
Start-Sleep -Milliseconds 1200
|
||||
}
|
||||
} while ((Get-Date) -lt $stopAt)
|
||||
|
||||
if ((Get-Date) -ge $stopAt) {
|
||||
throw "service did not become healthy within ${HealthTimeoutSec}s"
|
||||
}
|
||||
|
||||
Write-Host "[3] Running smoke against $BaseUrl"
|
||||
$smokeArgs = @("scripts/smoke_onec_agent_api.py", "--base-url", $BaseUrl, "--timeout", $SmokeTimeoutSec.ToString())
|
||||
if ($WithTurnCheck) {
|
||||
$smokeArgs += "--with-turn-check"
|
||||
}
|
||||
Invoke-CheckedCommand -Label "smoke_onec_agent_api.py" -Command (@("python") + $smokeArgs)
|
||||
|
||||
Write-Host "[done] onec-agent smoke passed"
|
||||
exit 0
|
||||
} catch {
|
||||
Write-Error $_
|
||||
exit 1
|
||||
}
|
||||
Reference in New Issue
Block a user