Files
baiyue-firstleg/scripts/backend-full-regression.ps1
T

98 lines
5.2 KiB
PowerShell
Raw Normal View History

2026-08-08 15:25:46 +08:00
[CmdletBinding()]
param(
[switch]$DryRun,
[string]$MavenCommand = "mvn"
)
$ErrorActionPreference = "Stop"
2026-10-19 17:56:36 +08:00
if (-not $DryRun -and -not $env:CHONGCHONG_LOCAL_CHECK_OWNER) {
& (Join-Path $PSScriptRoot 'local-check.ps1') -Label 'Backend full regression' -Command @('pwsh', '-NoProfile', '-File', $PSCommandPath, '-MavenCommand', $MavenCommand)
exit $LASTEXITCODE
}
2026-08-08 15:25:46 +08:00
$repoRoot = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
$pom = Join-Path $repoRoot "pom.xml"
2026-08-28 23:01:52 +08:00
$mapperScanContract = Join-Path $repoRoot "scripts/mapper-scan-contract.mjs"
2026-08-08 15:25:46 +08:00
$requiredTests = @(
2026-10-08 17:07:57 +08:00
"scripts/acceptance-evidence-audit.test.mjs",
2026-09-10 14:15:41 +08:00
"scripts/gateway-route-contract.test.mjs",
2026-08-28 23:01:52 +08:00
"scripts/mapper-scan-contract.test.mjs",
2026-08-08 15:25:46 +08:00
"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",
2026-08-12 20:36:11 +08:00
"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",
2026-08-13 14:03:54 +08:00
"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",
2026-10-20 14:22:53 +08:00
"warehouse/src/test/java/com/baiyue/warehouse/controller/PlatformOverseasStorageFeeControllerContractTest.java",
"lastleg-service/src/test/java/com/baiyue/lastleg/appointmentwork/AppointmentWorkContractTest.java",
"audit-service/src/test/java/com/baiyue/audit/controller/PlatformAuditLogControllerContractTest.java",
"file/src/test/java/com/baiyue/file/service/PdaReleaseServiceTest.java",
"firstleg/src/test/java/com/baiyue/firstleg/sailingcalendar/controller/SailingCalendarOpenApiContractTest.java",
"lastleg-service/src/test/java/com/baiyue/lastleg/selfoperated/analytics/controller/PlatformAnalyticsControllerTest.java",
"lastleg-service/src/test/java/com/baiyue/lastleg/fleet/trip/FleetTripApiContractTest.java"
2026-08-08 15:25:46 +08:00
)
2026-10-19 17:56:36 +08:00
$mavenArgs = @('-T', '1', '-DforkCount=1', '-DreuseForks=true', "-f", $pom, "test")
2026-08-08 15:25:46 +08:00
Write-Host "Backend regression root: $repoRoot"
Write-Host "Scope: complete root POM reactor (all active modules and their tests)"
2026-08-08 15:25:46 +08:00
Write-Host "Database/API access: none"
if (-not (Test-Path -LiteralPath $pom)) {
Write-Error "Missing Maven pom: $pom"
exit 2
}
2026-08-28 23:01:52 +08:00
if (-not (Test-Path -LiteralPath $mapperScanContract)) {
Write-Error "Missing Mapper scan contract: $mapperScanContract"
exit 2
}
2026-08-08 15:25:46 +08:00
$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 {
2026-09-10 14:15:41 +08:00
& node --test (Join-Path $repoRoot "scripts/gateway-route-contract.test.mjs")
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
2026-10-08 17:07:57 +08:00
& node --test (Join-Path $repoRoot "scripts/acceptance-evidence-audit.test.mjs")
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
2026-08-28 23:01:52 +08:00
& node $mapperScanContract
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
2026-08-08 15:25:46 +08:00
& $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