Skip to content

W-22857717: Fix Android CI workflow#468

Open
wmathurin wants to merge 23 commits into
forcedotcom:devfrom
wmathurin:fix-android-ci
Open

W-22857717: Fix Android CI workflow#468
wmathurin wants to merge 23 commits into
forcedotcom:devfrom
wmathurin:fix-android-ci

Conversation

@wmathurin

Copy link
Copy Markdown
Contributor

Summary

Fixes 5 bugs in .github/workflows/reusable-android-workflow.yaml that were causing Android CI to always fail, plus restores ios-nightly in nightly.yaml (was temporarily disabled during debugging).

Changes

Fix Description
Nightly checkout ref github.head_refgithub.ref_namehead_ref is empty on scheduled runs, causing unpredictable checkout behavior
gcloud command gcloud firebasegcloud --quiet beta firebase — non-beta exits silently with code 1 in this project; --quiet suppresses the interactive "install firebase component?" prompt on fresh CI runners
Results bucket Restored to dynamic cloud-test-${REPO_OWNER} with consistent gsutil copy — this correctly resolves to cloud-test-forcedotcom on upstream and cloud-test-<fork> on forks
Firebase flags Added --no-auto-google-login and --no-performance-metrics to align with SalesforceMobileSDK-Android workflow
Removed clearPackageData --environment-variables clearPackageData=true removed — causes SecurityException: Error granting runtime permission on API 34

Testing

Validated on wmathurin/SalesforceMobileSDK-ReactNative fork via workflow_dispatch (20+ iterations).

What was confirmed working:

  • gcloud --quiet beta firebase correctly installs the firebase component non-interactively, uploads APK, and starts the test run
  • ReactHarnessTest 2/2 ✅ passed on Firebase MediumPhone.arm API 36 (run 27658837103) — proves the workflow is correct end-to-end

Known remaining issue (pre-existing, not introduced by this PR):
The full 35-test suite hits Error:1 (Firebase infrastructure error) after ~12-20 minutes on MediumPhone.arm API 36. This is a pre-existing Firebase Test Lab infrastructure instability — all 5 most recent nightly runs on forcedotcom were already failing with Error:1 before this PR, and the Android native repo nightly has also been failing recently for the same reason. The fix here is to switch to the test-lab-* project-default bucket (requires granting the ReactNative service account access to that bucket — a GCP admin action separate from this PR).

wmathurin added 23 commits June 16, 2026 14:45
- nightly checkout: github.head_ref → github.ref_name (head_ref is empty on scheduled runs)
- results-bucket: dynamic cloud-test-${REPO_OWNER} → hardcoded cloud-test-forcedotcom (fork PRs don't have the bucket)
- add --no-auto-google-login and --no-performance-metrics (aligns with Android native, suppresses Error:1 triggers)
…PI 34 can't grant it); use MediumPhone.arm API 34
- Nightly checkout: github.head_ref → github.ref_name (head_ref empty on scheduled runs)
- gcloud: firebase → --quiet beta firebase (non-beta exits silently; --quiet auto-installs firebase component)
- Results bucket: dynamic cloud-test-${REPO_OWNER} (correct for forcedotcom and forks)
- gsutil copy bucket: same dynamic value (was inconsistent)
- Add --no-auto-google-login --no-performance-metrics (align with Android native)
- Remove --environment-variables clearPackageData=true (causes SecurityException on API 34)
- Restore ios-nightly (was temporarily disabled during debugging)
@github-actions

Copy link
Copy Markdown
TestsPassed ✅SkippedFailed
iOS ^18 Test Results35 ran35 ✅
TestResult
No test annotations available

@github-actions

Copy link
Copy Markdown
TestsPassed ✅SkippedFailed
iOS ^26 Test Results35 ran35 ✅
TestResult
No test annotations available

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant