This directory contains glue code for testing Maestro itself.
Typical workflow is:
- Start Android emulator and iOS simulator
download_apps
install_apps
run_tests
We try to keep shell code in separate files, so we don't get too tightly coupled to GitHub Actions.
Let's say a critical bug is introduced that causes Maestro to always mark all
tests as passed. If our e2e test suite only was only checking if all tests pass
(i.e. maestro test
exit code is 0), then wouldn't catch such a bug.
To prevent this, all flows in this directory MUST have a passing
or failing
label, so the correct outcome can be asserted.
This directory also contains samples that are downloaded by the maestro download-samples
command,
and some glue code to facilitate updating those samples.
maestro download-samples
provides a set of flows and apps so that users can
quickly try out Maestro, without having to write any flows for their own app.
download-samples
downloads these files and apps from our publicly-available
Google Cloud Storage bucket (hosted on storage.googleapis.com
).
The samples are automatically updated by the GitHub Action on every new commit
to the main
branch.
There zip archive that is downloaded by download-samples
consists of 2 things:
- the Maestro workspace with flows (located in the
workspaces/wikipedia
directory) - the app binary files that are used in the flows (located in the
apps
directory)
App binary files are heavy, so we don't store them in the repository. Instead, they are hosted on publicly available directory in Google Cloud Storage:
Run the script:
./update_samples