You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: stop rebuilding the test app during packaging, single-ABI emulator tests, ccache, CMake 3.31
The CI Build job spent ~23 minutes on the npm package because every
:runtime:assembleRelease pass (one per AAR flavor) dragged a full test-app
build - both variants, including 8 CMake configure+builds - through
finalizedBy(":app:buildMetadata") hooks on nearly every runtime task, plus
reverse hooks in app/build.gradle attaching metadata tasks onto library
tasks. The app already reaches buildMetadata through its merge*Assets
dependency, so packaging now builds only the three AARs (12 native builds
instead of 24 plus three app builds).
Metadata wiring changes:
- runtime/build.gradle: drop the finalizedBy(":app:buildMetadata") hooks
- app/build.gradle: drop the reverse hooks onto subprojects' library tasks;
instead order library classes.jar producers (bundleLibCompileToJar<Variant>)
before cleanupAllJars, which consumes them as declared inputs
- app/build.gradle: buildMetadata only depends on the selected build type's
variant tasks; the generator only reads that variant's classes, and
depending on both variants forced a release app build into assembleDebug
Test job: forward -Pabis through the runtests Exec layers and pass
-Pabis=x86_64 in CI so the emulator run compiles one ABI instead of eight
ABI/variant combinations.
Toolchain/caching:
- pin CMake 3.31.6 (CI previously installed the vestigial 3.6 fork while
AGP auto-installed and used 3.22.1)
- re-enable the ccache CMake argument (the -DUSE_CCACHE wiring was
commented out, so -PuseCCache never reached CMake), drop -PnoCCache in
CI, and persist ~/.ccache via actions/cache
- enable org.gradle.parallel/org.gradle.caching in CI only (runner-level
gradle.properties), and cancel superseded PR runs via concurrency
Verified locally: full package build from scratch (three AARs with all four
ABIs, classes.jar and prefab intact), :runtime:assembleRelease and
:runtime:testDebugUnitTest schedule zero :app tasks, assembleDebug builds
only the debug variant and one ABI with metadata present in the APK, and
the full on-device suite passes (879 tests, 0 failures).
0 commit comments