Skip to content

Draft: chore: add maestro tests to CI#501

Draft
kacperzolkiewski wants to merge 24 commits into
mainfrom
@kacperzolkiewski/add-e2e-tests-to-ci
Draft

Draft: chore: add maestro tests to CI#501
kacperzolkiewski wants to merge 24 commits into
mainfrom
@kacperzolkiewski/add-e2e-tests-to-ci

Conversation

@kacperzolkiewski

@kacperzolkiewski kacperzolkiewski commented Mar 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

Add maestro e2e tests to CI.

Test Plan

e2e-android job passes
e2e-ios job passes

Screenshots / Videos

Compatibility

OS Implemented
iOS
Android

Checklist

  • E2E tests are passing
  • Required E2E tests have been added (if applicable)

@kacperzolkiewski kacperzolkiewski marked this pull request as ready for review March 26, 2026 16:09
@kacperzolkiewski kacperzolkiewski changed the title chore: add maestro tests to CI (Draft/Do not check yet)chore: add maestro tests to CI Mar 26, 2026
@kacperzolkiewski kacperzolkiewski force-pushed the @kacperzolkiewski/add-e2e-tests-to-ci branch from fbfded1 to aae1a89 Compare March 31, 2026 06:14
@kacperzolkiewski kacperzolkiewski changed the title (Draft/Do not check yet)chore: add maestro tests to CI chore: add maestro tests to CI Mar 31, 2026
@kacperzolkiewski kacperzolkiewski changed the title chore: add maestro tests to CI Draft: chore: add maestro tests to CI Mar 31, 2026
@kacperzolkiewski kacperzolkiewski marked this pull request as draft March 31, 2026 09:26
@kacperzolkiewski kacperzolkiewski deleted the @kacperzolkiewski/add-e2e-tests-to-ci branch May 12, 2026 12:36
@kacperzolkiewski kacperzolkiewski restored the @kacperzolkiewski/add-e2e-tests-to-ci branch July 7, 2026 12:58
@kacperzolkiewski kacperzolkiewski marked this pull request as ready for review July 7, 2026 13:00
Copilot AI review requested due to automatic review settings July 7, 2026 13:00
@kacperzolkiewski kacperzolkiewski marked this pull request as draft July 7, 2026 13:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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_VERSION can become empty if maestro --version output format changes, and sort -V is not consistently available across environments (notably macOS). Add an explicit parse check and use a bash semver comparison to avoid relying on GNU sort -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
Comment thread .github/workflows/e2e.yml
with:
path: |
**/ios/Pods
key: ${{ steps.cocoapods-cache.outputs.cache-key }}
Comment thread .github/workflows/e2e.yml
Comment on lines +109 to +110
- name: Start Metro
run: yarn example start &
Comment thread .github/workflows/e2e.yml
Comment on lines +177 to +178
- name: Start Metro
run: yarn example start &
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.

2 participants