SDT/scripts/legacy/migration-gate.legacy.ps1
2026-03-01 20:52:56 -06:00

58 lines
1.9 KiB
PowerShell

param(
[switch]$SkipSmoke,
[switch]$SkipApi
)
$ErrorActionPreference = "Stop"
$repoRoot = Split-Path -Parent $PSScriptRoot
$parityReport = Join-Path $repoRoot "logs\parity_harness_results.json"
Write-Host "migration-gate: repo root = $repoRoot"
Push-Location $repoRoot
try {
Write-Host "migration-gate: building sidecar binary..."
& "$repoRoot\scripts\dotnet-min.ps1" build Journal.Sidecar/Journal.Sidecar.csproj
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
if (-not $SkipSmoke) {
Write-Host "migration-gate: running csharp smoke tests..."
& "$repoRoot\scripts\dotnet-min.ps1" run --project Journal.SmokeTests/Journal.SmokeTests.csproj
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
}
else {
Write-Host "migration-gate: skipping smoke tests (--SkipSmoke)."
}
Write-Host "migration-gate: running parity harness + fixture matrix..."
$testsDir = Join-Path $repoRoot "tests"
if (Test-Path $testsDir) {
$env:PARITY_HARNESS_REPORT = $parityReport
& python -m unittest discover -s tests -p "test_parity_harness.py" -v
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
}
else {
Write-Host "migration-gate: skipping parity harness — tests/ directory not found."
}
if (-not $SkipApi) {
Write-Host "migration-gate: running API contract tests..."
if (Test-Path $testsDir) {
& python -m unittest discover -s tests -p "test_api_contract.py" -v
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
}
else {
Write-Host "migration-gate: skipping API contract tests — tests/ directory not found."
}
}
else {
Write-Host "migration-gate: skipping API contract tests (--SkipApi)."
}
Write-Host "migration-gate: PASS"
Write-Host "migration-gate: parity report => $parityReport"
}
finally {
Pop-Location
}