Skip to content

ci: run the iOS and Android integration tests in their own jobs - #5810

Open
ric-oliv wants to merge 2 commits into
ci/run-samples-and-integration-tests-in-own-jobsfrom
ci/run-device-integration-tests-in-own-jobs
Open

ric-oliv wants to merge 2 commits into
ci/run-samples-and-integration-tests-in-own-jobsfrom
ci/run-device-integration-tests-in-own-jobs

Conversation

@ric-oliv

@ric-oliv ric-oliv commented Oct 25, 2026 •

Copy link
Copy Markdown
Member

Part 4 of 6 for #5806, based on #5809. The device test jobs had the same chain as the build legs: each ran the device tests and then the integration tests. The integration tests build and run their own app and share only the simulator or emulator, so they now run in a second job at the same time, one commit per platform.

iOS. ios-integration-tests runs next to ios-tests. ios.Tests.ps1 skips every case unless a simulator is already booted, and xharness only boots one in ios-tests, so the new job boots its own, with a 10-minute timeout. In #5790 the iOS workflow took 18 minutes, against 38.7 the same night, and all 8 integration cases passed.

Android. android-integration-tests uses the same API level and framework matrix through YAML anchors. It starts with the workflow instead of waiting for the device test app builds.

In #5800 the Android workflow took 19.8 minutes instead of 30.1.

On this PR's own CI

3 runs, including #5807 to #5809. iOS Device Tests took 22.1, 22.2 and 15.9 minutes against 39.0 on main, and all 8 integration cases passed each time. Android Device Tests took 21.1, 34.8 and 29.1, because here the emulator jobs still use the larger runner, and they waited up to 11.9, 25.6 and 20.5 minutes for one. #5812 moves them to standard runners, where Android took 17.9, 18.4 and 17.5. The whole stack's numbers are in #5806.

#skip-changelog

@codecov

codecov Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.12%. Comparing base (1db0ebb) to head (3db1268).

Additional details and impacted files
@@                                 Coverage Diff                                  @@
##           ci/run-samples-and-integration-tests-in-own-jobs    #5810      +/-   ##
====================================================================================
- Coverage                                             76.13%   76.12%   -0.01%     
====================================================================================
  Files                                                   528      528              
  Lines                                                 19579    19579              
  Branches                                               3829     3829              
====================================================================================
- Hits                                                  14906    14905       -1     
  Misses                                                 3791     3791              
- Partials                                                882      883       +1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ric-oliv
ric-oliv force-pushed the ci/run-samples-and-integration-tests-in-own-jobs branch from 7cf192e to 13de6a8 Compare October 25, 2026 16:22
@ric-oliv
ric-oliv force-pushed the ci/run-device-integration-tests-in-own-jobs branch from 2a0f2f4 to 1634a0f Compare October 25, 2026 16:22
@ric-oliv
ric-oliv marked this pull request as ready for review October 26, 2026 19:05
@github-actions github-actions Bot added the risk: medium PR risk score: medium label Oct 26, 2026
ric-oliv and others added 2 commits October 26, 2026 20:11
The iOS job ran the device tests and then the integration tests on one
Mac, about 42 minutes in all. The two build and run different apps and
share only the simulator, so the integration tests now run in a second
job at the same time.

ios.Tests.ps1 skips every case unless a simulator is already booted,
and xharness only boots one in the ios-tests job, so the new job boots
its own, with a 10-minute timeout. The boot takes about 2 minutes.
The job uploads no results, because ios.Tests.ps1 writes nothing to
the integration-test/mobile-app/test_output folder the old job
uploaded.

On its first run, the iOS workflow took 18 minutes, against 38.7 for
the single job the same night, and all 8 integration cases passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each Android emulator job ran the device tests, then Setup Environment,
then the integration tests, about 22 minutes after waiting 7.5 for the
device test app builds. The integration tests build their own app from
source and share only the emulator, so they now run in a second job
that starts with the workflow, on the same runners.

The new job drops "Select Java 21". #4559 added it as "Select Java
17", when Setup Environment ended on Java 11, and since #5060 Setup
Environment installs only Java 21.

The new job uploads integration-test/mobile-app/test_output, where
android.Tests.ps1 points xharness, without a warning when it's empty.
It was empty on every run so far.

On its first run, the Android workflow took 19.8 minutes instead of
30.1. The device test jobs took 3.6 to 3.8 minutes and the integration
jobs 12.0 to 19.7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ric-oliv
ric-oliv force-pushed the ci/run-device-integration-tests-in-own-jobs branch from 1634a0f to 3db1268 Compare October 26, 2026 19:15
@ric-oliv
ric-oliv force-pushed the ci/run-samples-and-integration-tests-in-own-jobs branch from 13de6a8 to 1db0ebb Compare October 26, 2026 19:15

@jamescrosswell jamescrosswell left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - just have to make sure it gets merged at the same time as #5812 since the the emulator jobs needing the larger 4-core runners go from 4 to 8, all starting at about the same time, until #5812 merges.

This branch has not been deployed

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

Labels

risk: medium PR risk score: medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants