diff --git a/.gitea/workflows/pr-checks.yml b/.gitea/workflows/pr-checks.yml index 8917e43..b26a2b7 100644 --- a/.gitea/workflows/pr-checks.yml +++ b/.gitea/workflows/pr-checks.yml @@ -65,7 +65,11 @@ jobs: # chmod defensively: this runner's checkout doesn't preserve the git # executable bit, so `./gradlew` alone fails with "Permission denied". + # Debug-variant-only gate: unit tests, lint, and the debug APK. Scoping to + # the debug variant (vs. the aggregate `test`/`lint`) avoids compiling and + # linting the release variant in parallel, which halves peak memory on the + # runner and keeps lint's report phase from GC-thrashing (see gradle.properties). - name: Lint, test, assemble debug run: | chmod +x ./gradlew - ./gradlew --no-daemon lint test assembleDebug + ./gradlew --no-daemon testDebugUnitTest lintDebug assembleDebug diff --git a/gradle.properties b/gradle.properties index 2bbd399..e190010 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,9 @@ # Project-wide Gradle settings. -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# Heap raised from 2048m: Android lint's report phase (lintReportDebug) needs +# more than 2 GB on the full app codebase and GC-thrashes to a hang below that +# on the CI runner (it passed at 2 GB only while the M0 scaffold was trivial). +# Metaspace is capped so the larger heap doesn't crowd container RAM. +org.gradle.jvmargs=-Xmx3g -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8 org.gradle.caching=true org.gradle.configuration-cache=true