Files
ccdi/assets/implementation/scripts/test_ry_bat.ps1

65 lines
2.2 KiB
PowerShell
Raw Normal View History

2026-03-11 15:25:13 +08:00
$ErrorActionPreference = 'Stop'
$repoRoot = Resolve-Path (Join-Path $PSScriptRoot '..\..\..')
$expectedJar = Join-Path $repoRoot 'ruoyi-admin\target\ruoyi-admin.jar'
$originalJar = Join-Path $repoRoot 'ruoyi-admin\target\ruoyi-admin.jar.original'
$backupOriginalJar = "$originalJar.codex-test-backup"
Push-Location $repoRoot
try {
$output = cmd /c "set RY_DRY_RUN=1&& call ry.bat start" 2>&1 | Out-String
$exitCode = $LASTEXITCODE
if ($exitCode -ne 0) {
throw "ry.bat dry-run failed with exit code $exitCode.`n$output"
}
if ($output -notmatch 'START_CMD=java ') {
throw "Expected START_CMD output was not found.`n$output"
}
if ($output -notmatch [regex]::Escape($expectedJar)) {
throw "Expected jar path was not found in dry-run output.`n$output"
}
foreach ($unsupportedToken in @('PrintGCDateStamps', 'UseParallelOldGC', 'javaw')) {
if ($output -match [regex]::Escape($unsupportedToken)) {
throw "Unexpected token [$unsupportedToken] found in dry-run output.`n$output"
}
}
if (Test-Path $originalJar) {
Move-Item -Path $originalJar -Destination $backupOriginalJar -Force
try {
$packageOutput = cmd /c "set RY_DRY_RUN=1&& call ry.bat start" 2>&1 | Out-String
$packageExitCode = $LASTEXITCODE
if ($packageExitCode -ne 0) {
throw "ry.bat package dry-run failed with exit code $packageExitCode.`n$packageOutput"
}
if ($packageOutput -notmatch 'BUILD_CMD=mvn -pl ruoyi-admin -am package -DskipTests') {
throw "Expected BUILD_CMD output was not found.`n$packageOutput"
}
if ($packageOutput -notmatch [regex]::Escape($expectedJar)) {
throw "Expected jar path was not found in package dry-run output.`n$packageOutput"
}
}
finally {
if (Test-Path $backupOriginalJar) {
Move-Item -Path $backupOriginalJar -Destination $originalJar -Force
}
}
}
Write-Host 'ry.bat dry-run verification passed.'
}
finally {
if (Test-Path $backupOriginalJar) {
Move-Item -Path $backupOriginalJar -Destination $originalJar -Force
}
Pop-Location
}