Files
baiyue-firstleg/scripts/backend-full-regression.ps1
2026-08-13 14:03:54 +08:00

74 lines
3.7 KiB
PowerShell

[CmdletBinding()]
param(
[switch]$DryRun,
[string]$MavenCommand = "mvn"
)
$ErrorActionPreference = "Stop"
$repoRoot = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
$pom = Join-Path $repoRoot "pom.xml"
$requiredTests = @(
"firstleg/src/test/java/com/baiyue/firstleg/oceanbooking/controller/PlatformOceanBookingControllerContractTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/oceanbooking/service/OceanBookingServiceTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/repository/TruckAppointmentMapperContractTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/service/TruckAppointmentServiceTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/controller/TruckAppointmentControllerContractTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/service/UnifiedInboundQueryServiceTest.java",
"order/src/test/java/com/baiyue/order/service/UnifiedOrderQueryServiceTest.java",
"iam/src/test/java/com/baiyue/iam/BaiyueIamApplicationContractTest.java",
"iam/src/test/java/com/baiyue/iam/notification/NotificationOpenApiContractTest.java",
"iam/src/test/java/com/baiyue/iam/notification/NotificationServiceTest.java",
"iam/src/test/java/com/baiyue/iam/notification/NotificationTemplateRendererTest.java",
"iam/src/test/java/com/baiyue/iam/notification/NotificationSqlContractTest.java",
"iam/src/test/java/com/baiyue/iam/notification/NotificationBusinessEventConsumerTest.java",
"iam/src/test/java/com/baiyue/iam/notification/NotificationSchedulerRecoveryTest.java",
"iam/src/test/java/com/baiyue/iam/notification/NotificationConfigurationContractTest.java",
"gateway/src/test/java/com/baiyue/gateway/config/GatewayFileRouteConfigurationTest.java",
"file/src/test/java/com/baiyue/file/controller/QualificationFileContractTest.java",
"file/src/test/java/com/baiyue/file/controller/InternalBusinessFileControllerTest.java",
"file/src/test/java/com/baiyue/file/service/InternalBusinessFileServiceTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/controller/ContainerControllerContractTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/controller/LoadingListControllerContractTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/repository/ContainerOverviewSqlContractTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/service/ContainerOverviewServiceTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/service/LoadingListServiceTest.java",
"warehouse/src/test/java/com/baiyue/warehouse/repository/OverseasStorageFeeSqlContractTest.java",
"warehouse/src/test/java/com/baiyue/warehouse/controller/PlatformOverseasStorageFeeControllerContractTest.java"
)
$mavenArgs = @("-f", $pom, "-pl", "order,firstleg,iam,gateway,file,warehouse", "-am", "test")
Write-Host "Backend regression root: $repoRoot"
Write-Host "Scope: order + firstleg + iam + gateway + file + warehouse Maven reactor (includes all module tests)"
Write-Host "Database/API access: none"
if (-not (Test-Path -LiteralPath $pom)) {
Write-Error "Missing Maven pom: $pom"
exit 2
}
$missing = @($requiredTests | Where-Object { -not (Test-Path -LiteralPath (Join-Path $repoRoot $_)) })
if ($missing.Count -gt 0) {
Write-Error ("Missing required regression coverage:`n" + ($missing -join "`n"))
exit 2
}
Write-Host ("Command: {0} {1}" -f $MavenCommand, ($mavenArgs -join " "))
if ($DryRun) {
Write-Host "DRY-RUN PASS: prerequisites and coverage files are present; Maven was not started."
exit 0
}
Push-Location $repoRoot
try {
& $MavenCommand @mavenArgs
$code = $LASTEXITCODE
} finally {
Pop-Location
}
if ($code -ne 0) {
Write-Error "Maven regression failed with exit code $code"
exit $code
}
Write-Host "Backend regression PASS"
exit 0