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 "
2026-09-29 19:48:34 +08:00
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