From 1a5665d90838d11bd0f2061df758afe8c35501f5 Mon Sep 17 00:00:00 2001 From: AetherForge Date: Sun, 7 Jun 2026 02:47:44 -0700 Subject: [PATCH] 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. --- android/smoke-gradle.ps1 | 45 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 android/smoke-gradle.ps1 diff --git a/android/smoke-gradle.ps1 b/android/smoke-gradle.ps1 new file mode 100644 index 0000000..8147220 --- /dev/null +++ b/android/smoke-gradle.ps1 @@ -0,0 +1,45 @@ +# 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