ci(android): raise Gradle heap + scope PR gate to debug variant
All checks were successful
PR Checks / android-build (pull_request) Successful in 10m13s
All checks were successful
PR Checks / android-build (pull_request) Successful in 10m13s
The M1 PR-checks run hung ~16 min in `lintReportDebug` and was killed by the runner (33m35s, marked failure) — every compile/test/assemble task completed first; no task FAILED. Android lint's report phase needs more than the 2 GB heap and GC-thrashes to a hang below it on the full app codebase (it passed at 2 GB only while the M0 scaffold was trivial). - gradle.properties: -Xmx2048m → -Xmx3g, cap MaxMetaspaceSize=1g so the larger heap doesn't crowd container RAM. - pr-checks.yml: run `testDebugUnitTest lintDebug assembleDebug` instead of the aggregate `test lint assembleDebug`, so the release variant isn't compiled+linted in parallel — halving peak memory and build time while keeping the same coverage (unit tests are variant-agnostic). Verified locally with the exact command (`--no-daemon`); lintReportDebug + lintDebug run and pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NgyHnrNa8WwG3doxvxjuCr
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user