From Laptop Builds to Advanced CI
summary
400-module Android app (290k LOC, 24 contributors) drops slow CI by combining dependency and script caching, remote Gradle build cache, Gradle properties tweaks, JVM/JDK 19+ tuning, and configuration cache persistence. Unit test jobs go from ~35–40 minutes to 3 minute unit tests and UI test batches to about 1 minute for UI tests. Nightly shadow jobs catch incompatible JDK or dependency upgrades; minified release builds fall from ~40 minutes to ~8 after enabling configuration cache and caching plugin outputs. Tools used: Gradle/Gradle Enterprise, GitHub Actions/CircleCI, JDK GC tuning, build cache node.
AI-written summary · about
chapters (24)
- 0:00Introduction
- 1:04Android builds context
- 3:52CI setup basics
- 6:12Testing CI with unit tests
- 8:39Avoid Android emulators
- 9:24Advanced CI optimization
- 10:08Performance benchmarks
- 11:50Caching dependencies
- 14:48Gradle properties quick wins
- 18:01Gradle Enterprise caching
- 21:12Remote cache setup
- 23:00Remote cache impact
- 23:43JDK upgrades performance
- 25:11Shadow jobs for dependencies
- 26:37JVM tuning for Gradle
- 31:42Heap and metaspace tuning
- 38:14Gradle workers optimization
- 41:01JVM config experiments
- 42:04Configuration cache setup
- 46:23Debugging config cache
- 48:11Config cache results
- 49:37CI overhead cost
- 50:50CI speed summary
- 51:10Q&A
related talks
52mFrom Laptop Builds to Advanced CI
17mBoosting your Android CI through integrating Build Cache
40mNail your Gradle build time
30mHow we brought down our build times. General optimization tips
21mStreamlining Android app development and release processes
30mAndroid Developer Productivity
40mSimple Recipes to Enhance Developer Productivity
31mImproving Android Build performance
