Skip to content

Latest commit

 

History

History
81 lines (53 loc) · 3.69 KB

integration-with-any-ci-platform.md

File metadata and controls

81 lines (53 loc) · 3.69 KB

Integration with any CI platform

{% hint style="info" %} 🚀 Cloud Plan required - get started for free at maestro.dev {% endhint %}

You can use the Maestro CLI to run your Flows in the cloud from any CI platform.

Prerequisites

API KeyReach out to your mobile.dev representative to obtain your Maestro API key
Project IDThe id of the project you want to upload your app and Flows to. You can retrieve this from the Maestro console.
iOSProvide a path that points to an x86-compatible *.app simulator build directory, or a zipped file that contains the *.app build.
AndroidYou APK must be x86-compatible.

1. Organize your Flows

Add all of your Flows under a single directory in your repo. We recommend naming this directory .maestro/ as this is the naming convention our native integrations expect by default. (Note the "." at the beginning of .maestro/)

<root>
├── .maestro/
│   ├── Login.yaml
│   ├── Add to Cart.yaml
│   └── Search.yaml

All of the flows directly under the .maestro/ directory will be executed as top-level flows.

Subflows

It's common to have some Flow files that are only meant to be executed as part of another Flow via the runFlow command. These "subflows" can be nested under a subdirectory to prevent them from running as a top-level Flow.

<root>
├── .maestro/
│   ├── subflows/
│   │   └── MySubflow.yaml
│   ├── Login.yaml
│   ├── Add to Cart.yaml
│   └── Search.yaml

In the example above, MySubflow.yaml will not be executed as a top-level Flow, but still can be referenced by other Flows using the runFlow command.

2. Run Flows in the cloud

1. Install the Maestro CLI

First, ensure that the Maestro CLI is installed on your CI machine:

curl -Ls "https://get.maestro.mobile.dev" | bash

2. Run the "maestro cloud" command

Add a step in your CI workflow that executes the maestro cloud command:

maestro cloud --apiKey <apiKey> --project-id <projectId> <appFile> .maestro/
<apiKey>Maestro API Key
<projectId>Maestro Project ID
<appFile>The APK file or .app directory (instructions)
.maestro/The directory that contains your Flows

To set a name for your upload, use the --name option:

maestro cloud --apiKey <apiKey> --project-id <projectId> --name <uploadName> <appFi

{% hint style="info" %} Note that you can also define your API key as an environment variable in your shell with the name MAESTRO_CLOUD_API_KEY and Maestro will automatically read it for you {% endhint %}

3. Detect Flow Failures

The maestro cloud command and our native CI integrations will wait for your Flows to finish executing before returning.

If any Flow failures are detected, the exit code is set to 1. On success, the exit code will be set to 0. This allows you to leverage any existing test alerting you have in place.

4. View Result Details

A link to the current upload will be printed out to your logs. You can view any ongoing or past uploads in the Maestro console.