Files
AetherForge/android/smoke-gradle.ps1
AetherForge 1a5665d908 Add Windows Gradle smoke test for Android agent-app project.
Validates APK module layout and tolerates missing JDK 17 for gradlew help on developer machines.
2026-06-07 02:47:44 -07:00

46 lines
1.6 KiB
PowerShell

# Smoke-check that the Android Gradle project is structurally valid.
$ErrorActionPreference = "Stop"
$Root = Split-Path -Parent $MyInvocation.MyCommand.Path
$App = Join-Path $Root "agent-app"
$required = @(
(Join-Path $App "build.gradle.kts"),
(Join-Path $App "settings.gradle.kts"),
(Join-Path $App "src\main\AndroidManifest.xml"),
(Join-Path $App "src\main\java\com\aetherforge\agent\MainActivity.kt"),
(Join-Path $App "src\main\java\com\aetherforge\agent\AgentService.kt"),
(Join-Path $App "src\main\java\com\aetherforge\agent\BootReceiver.kt"),
(Join-Path $App "src\main\assets\config.json")
)
foreach ($f in $required) {
if (-not (Test-Path $f)) { throw "missing required file: $f" }
}
$manifest = Get-Content (Join-Path $App "src\main\AndroidManifest.xml") -Raw
foreach ($needle in @("FOREGROUND_SERVICE", "RECEIVE_BOOT_COMPLETED", "AgentService")) {
if ($manifest -notmatch [regex]::Escape($needle)) {
throw "AndroidManifest missing $needle"
}
}
$gradlew = Join-Path $App "gradlew.bat"
if (Test-Path $gradlew) {
Push-Location $App
$prevEap = $ErrorActionPreference
$ErrorActionPreference = "Continue"
try {
& $gradlew help -q --no-daemon 2>&1 | Out-Null
if ($LASTEXITCODE -ne 0) {
Write-Host "gradle help skipped (JDK 17+ required for AGP 8.x)" -ForegroundColor Yellow
}
} finally {
$ErrorActionPreference = $prevEap
Pop-Location
}
} else {
Write-Host "gradlew missing - structural checks only"
}
Write-Host "android gradle smoke: OK" -ForegroundColor Green