feat: add CircleCI job for maestro E2E tests#1699
Draft
ajpallares wants to merge 16 commits intoadd-maestro-e2e-testfrom
Draft
feat: add CircleCI job for maestro E2E tests#1699ajpallares wants to merge 16 commits intoadd-maestro-e2e-testfrom
ajpallares wants to merge 16 commits intoadd-maestro-e2e-testfrom
Conversation
96cad0e to
5f4fc0e
Compare
8f8eb7b to
effa822
Compare
5f4fc0e to
979b0a5
Compare
effa822 to
ab777d6
Compare
979b0a5 to
100d385
Compare
4534287 to
43395b2
Compare
991867f to
a5cac25
Compare
b2dda81 to
5ad518b
Compare
e776f81 to
89bd52c
Compare
cfe5590 to
da877f5
Compare
1cf8fed to
b266f9e
Compare
da877f5 to
1fcdee4
Compare
b266f9e to
82563b8
Compare
1fcdee4 to
0265781
Compare
82563b8 to
067a74c
Compare
0265781 to
073a93f
Compare
067a74c to
6893fcf
Compare
073a93f to
65ab3dc
Compare
6893fcf to
c01f963
Compare
1f6ac86 to
e6fe691
Compare
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
…aestro tests Co-Authored-By: Claude Opus 4.6 <[email protected]> Made-with: Cursor
Split the single maestro-e2e-tests workflow into two independent workflows (maestro-e2e-tests-ios and maestro-e2e-tests-android) so they run in parallel on their respective platforms. Made-with: Cursor
Made-with: Cursor
…o tests Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
- Prefix Dir.chdir and maestro test paths with ../ since Fastlane runs from the fastlane/ subdirectory - Wait for sys.boot_completed before sending keyevent to emulator Made-with: Cursor
Made-with: Cursor
c01f963 to
691052f
Compare
da16a41 to
5f321fc
Compare
iOS: Add flutter precache --ios before pod install to ensure Flutter.xcframework exists for the Podfile post-install hook. Android: Add adb start-server and adb wait-for-device before adb install to handle potential ADB disconnection during flutter build. Made-with: Cursor
Made-with: Cursor
- Add --test-output-dir to maestro commands so screenshots are stored as CI artifacts - Add takeScreenshot steps to Maestro flow for CI debugging Made-with: Cursor
The emulator may die (OOM) during the long flutter build apk step. Add timeout-based detection and automatic emulator restart if no device is found within 30 seconds after the build completes. Made-with: Cursor
Follow purchases-android pattern for emulator management: - Use android orb create-avd/start-emulator for proper AVD lifecycle - Split Fastlane lane into build_maestro_app_android + run_maestro_e2e_tests_android - Build app first (memory-intensive), then create/start emulator - Eliminates OOM risk from concurrent build + emulator - Remove hacky emulator recovery logic - Reuse android-machine-emulator executor alias for consistency Made-with: Cursor
Move takeScreenshot before the extendedWaitUntil step so we capture what's on screen even when the wait times out and fails the test. Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
maestro_e2e_testsschedule:maestro-e2e-tests-ios: runs on macOS executor, builds the test app for iOS simulator, runs Maestro testsmaestro-e2e-tests-android: runs onandroid:2024.11.1machine image, creates an Android emulator, builds a debug APK, runs Maestro testsrun_maestro_e2e_tests_ios: replaces API key placeholder, installs deps, builds via xcodebuild, installs on simulatorrun_maestro_e2e_tests_android: replaces API key placeholder, installs deps, builds via Gradle, installs via adb$RC_E2E_TEST_API_KEY_PRODUCTION_TEST_STOREfrom thee2e-testsCircleCI contextDepends on #1698