Draft: chore: add maestro tests to CI#501
Draft
kacperzolkiewski wants to merge 24 commits into
Draft
Conversation
fbfded1 to
aae1a89
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds Maestro end-to-end (E2E) testing to GitHub Actions CI for both iOS and Android, along with small script and documentation updates to support running those flows reliably in CI and locally.
Changes:
- Added a new GitHub Actions workflow to run Maestro E2E tests on iOS and Android with path-based change filtering.
- Updated Maestro setup scripts to behave better in CI (headless emulator/simulator behavior, AVD creation tweaks).
- Updated contributor documentation to reflect the current Android target device.
Reviewed changes
Copilot reviewed 5 out of 8 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
CONTRIBUTING.md |
Updates documented Android E2E target device. |
.maestro/scripts/setup-ios-simulator.sh |
Avoids opening the Simulator UI when running on CI. |
.maestro/scripts/setup-android-emulator.sh |
Switches to Pixel 7 AVD and improves CI/headless emulator setup; adds AVD-home normalization. |
.maestro/scripts/run-tests.sh |
Improves Maestro version parsing and CI logging behavior when capturing DEVICE_ID. |
.github/workflows/e2e.yml |
Introduces new E2E workflow with iOS/Android jobs, caching, and artifact upload on failure. |
Comments suppressed due to low confidence (1)
.maestro/scripts/run-tests.sh:33
MAESTRO_VERSIONcan become empty ifmaestro --versionoutput format changes, andsort -Vis not consistently available across environments (notably macOS). Add an explicit parse check and use a bash semver comparison to avoid relying on GNUsort -V.
MAESTRO_VERSION=$(maestro --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
# Compare versions by sorting them; if the minimum sorts after the actual, it's too old.
if [ "$(printf '%s\n' "$MIN_MAESTRO_VERSION" "$MAESTRO_VERSION" | sort -V | head -n1)" != "$MIN_MAESTRO_VERSION" ]; then
echo "Error: maestro $MAESTRO_VERSION is too old, minimum required is $MIN_MAESTRO_VERSION" >&2
exit 1
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
18
to
21
| if [ -z "$ANDROID_HOME" ]; then | ||
| echo "Error: ANDROID_HOME is not set. Set it to your Android SDK directory." | ||
| exit 1 | ||
| fi |
| with: | ||
| path: | | ||
| **/ios/Pods | ||
| key: ${{ steps.cocoapods-cache.outputs.cache-key }} |
Comment on lines
+109
to
+110
| - name: Start Metro | ||
| run: yarn example start & |
Comment on lines
+177
to
+178
| - name: Start Metro | ||
| run: yarn example start & |
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
Add maestro e2e tests to CI.
Test Plan
e2e-androidjob passese2e-iosjob passesScreenshots / Videos
Compatibility
Checklist