Context: We wanted to improve our release build time in our Android app, so we have integrated gradle enterprise plugin to investigate through Build Scans.
Issue: Upon looking at some of the longest running tasks we see that some tasks has high Fingerprinting inputs and very minuscule Task action execution. [Please refer to the attached screenshots]
Below are the tasks which have this issue.
app:bundleReleaseJsAndAssets → Number of Input files are around 108396. This task is a React Native task which generates minified js Bundle
module2:packageReleaseAssets → Input files are around 22
module3:mergeReleaseShaders → Input files are around 57
module4:mergeReleaseShaders → Input files are around 44
module5:mergeReleaseShaders → Input files are around 22
module6:mergeReleaseShaders → Input files are around 562
module7:packageReleaseAssets → Input files are around 32
module8:packageReleaseAssets → Input files are around 38
All the tasks doesn’t share any inputs or outputs directory, as confirmed from debugging the tasks in Android
Studio.
Questions
- How come fingerprinting input takes 2-3min when the input files are very few?
- Does the other tasks actions affect the fingerprinting input of tasks which are running parallel? If so how to avoid this?
Configuration:
Background build scan publication: On
Build Cache: On
Build output capturing: On
Configure on demand: On
Daemon: On
File system watching: On
Parallel: On
Test output capturing: On
Configuration Cache: Off
Continue on failure: Off
Continuous: Off
Dry run: Off
Offline: Off
Re-run tasks: Off
Re-run tasks: Off
Refresh dependencies: Off
Task inputs file capturing: Off