Skip to content

Commit f117f59

Browse files
Drop racy parallel pre-build step from inapp-e2e-tests workflow
After the SDK-170 migration of this workflow to ubuntu-latest + KVM (#1048, commit 7d4a80b), every PR opened against master has been failing the In-App Message E2E Tests check at the build stage: Execution failed for task ':integration-tests:mergeDebugAndroidTestResources'. > Cannot access output property 'blameLogOutputFolder' … > Failed to create MD5 hash for file '.../merged_res_blame_folder/.../values-az.json' as it does not exist. with this warning a few lines earlier: Detected multiple Kotlin daemon sessions at kotlin/sessions The 'Pre-download Gradle and Build (Parallel with Emulator)' step backgrounded a separate Gradle invocation that was meant to assemble the APKs while the emulator booted. On macos-15-intel the background process was resource-starved during emulator boot (2 cores / slow HVF) so it usually finished or stalled before the action's Gradle started. On ubuntu-latest + KVM both Gradle processes get real CPU and run in true parallel, racing on the same integration-tests/build/intermediates directory. Affected runs: - feature/sdk-338-mobile-inbox-customization: 5 failures - fix/SDK-412-UUA-Naming-inconsistencies: 1 failure - SDK-170-emulator-network-trace: green (warm cache made the race window negligible — masked the regression during review) Removing the parallel pre-build is sufficient. The action's script already invokes ':integration-tests:connectedDebugAndroidTest' which transitively builds the APKs it needs. Expected wall-clock impact: +30-90s on a cold Gradle cache, traded for 'all PRs can run this check'. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 829bd6c commit f117f59

1 file changed

Lines changed: 15 additions & 10 deletions

File tree

.github/workflows/inapp-e2e-tests.yml

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,21 @@ jobs:
7070
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
7171
restore-keys: |
7272
${{ runner.os }}-gradle-
73-
74-
- name: Pre-download Gradle and Build (Parallel with Emulator)
75-
run: |
76-
echo "Pre-downloading Gradle and building while emulator boots..."
77-
# Download Gradle wrapper in background
78-
./gradlew --version &
79-
# Start building APKs in background
80-
./gradlew :integration-tests:assembleDebug :integration-tests:assembleDebugAndroidTest --no-daemon &
81-
echo "Build started in background..."
82-
73+
74+
# SDK-170 follow-up: the previous "Pre-download Gradle and Build (Parallel with
75+
# Emulator)" step backgrounded `./gradlew :integration-tests:assembleDebug
76+
# :integration-tests:assembleDebugAndroidTest --no-daemon &`. On macos-15-intel
77+
# the background process was resource-starved during emulator boot and usually
78+
# finished or stalled before the action's Gradle started, so the race window
79+
# was tiny. After we migrated to ubuntu-latest + KVM (commit 7d4a80ba), both
80+
# Gradle processes get real CPU and run in true parallel, racing on
81+
# `integration-tests/build/intermediates/merged_res_blame_folder/` and failing
82+
# `:integration-tests:mergeDebugAndroidTestResources` with
83+
# "Failed to create MD5 hash for file ... values-az.json as it does not exist".
84+
#
85+
# The action's `script:` invokes `./gradlew :integration-tests:connectedDebugAndroidTest`
86+
# which transitively assembles the APKs, so removing the pre-build loses nothing
87+
# except the (broken) parallelism. Wall-clock impact: ~30-90s on cold Gradle cache.
8388
- name: Run UI Tests with Emulator (KVM / x86_64)
8489
uses: ReactiveCircus/android-emulator-runner@v2
8590
with:

0 commit comments

Comments
 (0)