Skip to content

chore(e2e): switch iOS E2E to Maestro and stabilize manual workflow#123

Merged
floydkim merged 6 commits intomasterfrom
fix-e2e-failure-while-setup-env
Feb 26, 2026
Merged

chore(e2e): switch iOS E2E to Maestro and stabilize manual workflow#123
floydkim merged 6 commits intomasterfrom
fix-e2e-failure-while-setup-env

Conversation

@floydkim
Copy link
Collaborator

Summary

This PR switches iOS E2E execution from maestro-runner to Maestro CLI and stabilizes/tunes the manual E2E workflow.

Changes

Key updates:

  • Switched iOS E2E runner to Maestro CLI.
  • Split runner execution logic by platform in e2e/run.ts.
    • iOS: maestro
    • Android: maestro-runner
  • Removed --team-id option and iOS team-id resolution logic.
  • Applied workflow stability fixes:
    • Set iOS Ruby version to 3.1
    • Fixed Android maestro-runner PATH
    • Made Android emulator-runner script shell-safe
  • Adjusted job timeouts:
    • iOS: 120 minutes
    • Android: 20 minutes
  • Updated EN/KR README docs to match the new platform-specific runner behavior.

Problem: The e2e-manual iOS job failed in Setup Ruby because Ruby 3.2 is incompatible with Bundler 1.17.2 ( NoMethodError).

Solution: Downgraded the iOS workflow Ruby version to 3.1 in  to match the Gemfile.lock Bundler version.
Problem: The Android e2e step failed with /usr/bin/sh: 1: Syntax error: end of file unexpected (expecting fi) when running the multiline script in android-emulator-runner.

Solution: Replaced the multiline conditional script with a single-line if ...; then ...; else ...; fi command in .github/workflows/e2e-manual.yml to avoid shell parsing issues in the action wrapper.
Problem: E2E failed because maestro-runner was added to the wrong PATH location, and iOS runs had no explicit Team ID in CI.

Solution: Updated GITHUB_PATH to ~/.maestro-runner/bin for both jobs and added workflow_dispatch input ios_team_id mapped to MAESTRO_IOS_TEAM_ID in iOS E2E step.,
Problem: iOS E2E required WDA signing through maestro-runner, which is not feasible on hosted CI environments without Apple account credentials and signing assets.

Solution: Run iOS flows with Maestro CLI and keep Android on maestro-runner. Updated e2e runner branching logic, workflow install steps, and docs to match this split.
@floydkim floydkim merged commit 6331bfb into master Feb 26, 2026
2 checks passed
@floydkim floydkim deleted the fix-e2e-failure-while-setup-env branch February 26, 2026 13:37
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