Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes in this pull request
Checklist
CHANGELOG.mdfor any breaking changes, enhancements, or bug fixes.ktlintin the main directory and fixed any issues.Greptile Summary
This PR refactors CI into parallel, dedicated jobs (build, unit-tests, 5-shard instrumentation-tests, coverage-report), introduces AVD snapshot caching to speed up emulator startup, and enables Gradle build caching, parallel execution, and configuration cache in
gradle.properties. Thejacoco-combined.gradlefix correctly adds explicit compile-task dependencies so the coverage-report job can run without re-executing unit tests.Confidence Score: 5/5
Safe to merge; all findings are P2 style/improvement suggestions that don't block correctness.
The core logic is sound: jobs are correctly separated, artifacts are properly passed between jobs, AVD caching is correctly gated on cache-hit, and the jacoco dependency fix is correct. The findings (configuration cache compatibility, AVD cold-cache race, Firebase coverage not captured, coverage-report gate) are all P2 quality improvements rather than defects in the changed path.
gradle.properties (configuration cache) and .github/workflows/build+test.yml (Firebase + coverage-report gating)
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD PR[Pull Request] --> BT[build+test.yml\non PR to main] PR --> PT[pr-tests.yml\non PR to develop] BT --> B[build job\nassemble + Firebase Test Lab] BT --> UT1[unit-tests job\ntestDebugUnitTest] BT --> IT1[instrumentation-tests job\n5-shard matrix] IT1 -->|shard 0-4| S1[connectedDebugAndroidTest\nshardIndex=N/5] S1 --> CA1[Upload coverage artifacts\nper shard] UT1 --> UC1[Upload unit coverage\nbuild/jacoco/] UT1 & IT1 -->|needs| CR1[coverage-report job] CR1 --> DL1[Download all artifacts] DL1 --> GR1[jacocoTestReport\ncompileDebugSources only] GR1 --> UPL1[Upload jacoco report] GR1 --> BADGE1[Commit coverage badge] PT --> UT2[unit-tests job] PT --> IT2[instrumentation-tests job\n5-shard matrix] UT2 & IT2 -->|needs| CR2[coverage-report job] CR2 --> BADGE2[Commit coverage badge] style B fill:#ffe0b2 style CR1 fill:#e8f5e9 style CR2 fill:#e8f5e9Prompt To Fix All With AI
Reviews (1): Last reviewed commit: "Enable caching, improve avd issues" | Re-trigger Greptile