Skip to content

Add retry mechanism to Maestro e2e tests#1723

Merged
ajpallares merged 8 commits into
mainfrom
pallares/maestro-retry
Apr 16, 2026
Merged

Add retry mechanism to Maestro e2e tests#1723
ajpallares merged 8 commits into
mainfrom
pallares/maestro-retry

Conversation

@ajpallares

@ajpallares ajpallares commented Apr 15, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds Maestro E2E test retry mechanism (up to 5 retries) to combat flaky test failures
  • Uses the shared run_maestro_e2e_tests action from the fastlane plugin instead of inline logic
  • Applies to both iOS and Android Maestro test lanes
  • Includes temporary stress test workflow for validation (to be removed)

Dependencies

Test plan

  • Verify Maestro E2E tests pass in CI (iOS and Android)
  • Remove stress test workflow after validation

Note

Medium Risk
Changes CI test execution behavior by introducing retries via a plugin action, which could mask intermittent failures or alter reporting/output paths if misconfigured.

Overview
Updates the iOS and Android Fastlane Maestro E2E lanes to delegate test execution to the shared run_maestro_e2e_tests action, replacing the inline mkdir + maestro test --format junit commands.

This centralizes output directory/report handling (via output_dir: "test_output") and enables the plugin-provided retry mechanism for flaky Maestro runs.

Reviewed by Cursor Bugbot for commit c21f5cb. Bugbot is set up for automated code reviews on this repo. Configure here.

Wraps maestro test execution in a retry loop (up to 6 attempts) to
combat flaky test failures, matching the mechanism already in
purchases-ios.

Made-with: Cursor
Runs 10 maestro iOS e2e test jobs in parallel to validate the retry
mechanism under load. Remove after validation.

Made-with: Cursor
Replace local run_maestro_with_retries with the new run_maestro_e2e_tests
action from the fastlane plugin for centralized Maestro retry logic.

Made-with: Cursor
The stress test validated the Maestro retry mechanism successfully.

Made-with: Cursor
Made-with: Cursor

# Conflicts:
#	Gemfile.lock
The maestro retry action has been merged to main.

Made-with: Cursor
@ajpallares ajpallares marked this pull request as ready for review April 16, 2026 07:37
@ajpallares ajpallares requested a review from a team as a code owner April 16, 2026 07:37
@ajpallares ajpallares merged commit aadfef2 into main Apr 16, 2026
17 checks passed
@ajpallares ajpallares deleted the pallares/maestro-retry branch April 16, 2026 09:17
This was referenced Apr 16, 2026
RCGitBot added a commit that referenced this pull request Apr 17, 2026
**This is an automatic release.**

## RevenueCat SDK
### 🐞 Bugfixes
* [EXTERNAL] Fix Wasm incompatibility in web error processing (#1684)
contributed by @brunovsiqueira (#1722) via Toni Rico (@tonidero)
### 📦 Dependency Updates
* [AUTOMATIC BUMP] Updates purchases-hybrid-common to 18.1.0 (#1726) via
RevenueCat Git Bot (@RCGitBot)
* [Android
10.2.0](https://github.com/RevenueCat/purchases-android/releases/tag/10.2.0)
* [iOS
5.68.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.68.0)

### 🔄 Other Changes
* Add retry mechanism to Maestro e2e tests (#1723) via Antonio Pallares
(@ajpallares)
* Bump fastlane-plugin-revenuecat_internal from `20911d1` to `a1eed48`
(#1725) via dependabot[bot] (@dependabot[bot])
* Skip test cases list in maestro tests using launch arguments (#1714)
via Antonio Pallares (@ajpallares)
* Add CircleCI job for maestro E2E tests (#1699) via Antonio Pallares
(@ajpallares)
* Add maestro E2E test for purchase through paywall (#1698) via Antonio
Pallares (@ajpallares)
* Add maestro E2E test app (#1654) via Antonio Pallares (@ajpallares)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk release bookkeeping: primarily version bumps and
changelog/version-matrix updates, with no functional logic changes in
the plugin code beyond reporting the new version string.
> 
> **Overview**
> Updates the SDKs to **v`10.0.1`** by bumping version identifiers
across `pubspec.yaml`, Android Gradle configs, and iOS/macOS podspecs
(including the runtime-reported plugin version strings).
> 
> Refreshes release documentation (`CHANGELOG.md`,
`CHANGELOG-LATEST.md`, `VERSIONS.md`) to include the `10.0.1` notes
(Wasm web error-processing fix) and the dependency bump to
`purchases-hybrid-common` `18.1.0` (Android `10.2.0`, iOS `5.68.0`).
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
ff0bb5e. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants