Skip to main content

Maestro Cloud Upload

Maestro Cloud is a cloud-based mobile device farm for testing and debugging mobile applications, offering developers and QA teams access to a wide range of real devices for comprehensive testing across various platforms, operating systems, and device configurations.

The Appcircle Maestro Cloud Upload step enables users to upload their mobile applications directly to Maestro, a cloud-based mobile device farm for testing and debugging applications. This integration simplifies the process of distributing apps for testing purposes across various devices and platforms supported by Maestro. Users can configure this step within their CI/CD workflows to deploy their apps to Maestro's cloud infrastructure, facilitating efficient and comprehensive testing procedures.

Prerequisites

Before running the Maestro Cloud Upload step, certain prerequisites must be completed. These prerequisites, detailed in the table below, vary depending on the platform:

For All Platforms

Prerequisite Workflow StepDescription
Git CloneFetches the repository to be built from the specified branch, ensuring that the Maestro CLI can run on the repository path.

For Android (Java / Kotlin and React Native)

Prerequisite Workflow StepDescription
Android BuildGenerates the app required for the Maestro Cloud Upload step.
Android SignThis step is required for signing the app. It processes the output for signing but can be skipped if the app is already signed.

For iOS (Objective-C / Swift and React Native)

Prerequisite Workflow StepDescription
Xcodebuild for DevicesBuilds the application in ARM architecture and generates an IPA file.

For Android Flutter

Prerequisite Workflow StepDescription
Flutter Build for AndroidGenerates the app required for the Maestro Cloud Upload step.
Android SignThis step is required for signing the app. It processes the output for signing but can be skipped if the app is already signed.

For iOS Flutter

Prerequisite Workflow StepDescription
Xcodebuild for DevicesBuilds the application in ARM architecture and generates an IPA file.
Flutter Build for iOSPrepares the Flutter project for the iOS environment and builds it using the Flutter SDK.

Input Variables

The Maestro Cloud Upload step requires specific input variables:

warning

Enter confidential information as a secret environment variable. Also, select the appropriate environment variable group in the Configuration.

Variable NameDescriptionStatus
$AC_MAESTRO_API_KEYThe API key is required for accessing Maestro Cloud services.Required
$AC_MAESTRO_APP_FILEAndroid: Specify the path to an x86 compatible APK file. iOS: Provide a zip archive containing an x86 compatible simulator build.Required
$AC_MAESTRO_WORKSPACESpecifies the directory or file path where Maestro flows are located. By default, it looks for a .maestro folder in the project root. Override with a workspace argument if needed.Required
$AC_MAESTRO_UPLOAD_NAMESpecifies the custom name for the upload.Optional
$AC_MAESTRO_ASYNCToggle to enable asynchronous mode for running flows.Optional
$AC_MAESTRO_ENVPass environment variables to the flows. Separate variables using a new line, or \n.Optional
$AC_MAESTRO_ANDROID_API_LEVELSet the Android API level for devices to run. The default value is 30.Optional
$AC_MAESTRO_INCLUDE_TAGSRun only flows containing the specified tags (comma-separated).Optional
$AC_MAESTRO_EXCLUDE_TAGSExclude flows with the specified tags (comma-separated).Optional
$AC_MAESTRO_EXPORT_TEST_REPORTToggle to export the test suite report (JUnit).Optional
$AC_MAESTRO_EXPORT_OUTPUTSpecify the output file for the test file output. The default is report.xml.Optional
$AC_MAESTRO_MAPPING_FILEAndroid: Include the Proguard mapping file. iOS: Include the generated .dSYM file.Optional
$AC_MAESTRO_BRANCHThe branch from which the upload originated.Optional
$AC_MAESTRO_REPO_NAMEThe name of the repository (e.g., GitHub repo slug).Optional
$AC_MAESTRO_REPO_OWNERThe owner of the repository (e.g., GitHub organization or user slug).Optional
$AC_MAESTRO_PULL_IDThe ID of the pull request from which the upload originated.Optional
$AC_MAESTRO_CLI_VERSIONThe version of the Maestro CLI is to be downloaded in your CI environment. The default value is the latest version.Optional

Output Variables

The Maestro Cloud Upload step does not produce any output variables. The results are shown in the build log.


To access the source code of this component, please use the following link:

Preview of GitHub - appcircleio/appcircle-maestro-cloud-upload-component