Skip to main content

Marathon Cloud

MarathonLabs provides infinite virtual devices and will automatically shard, sort, distribute, and retry your tests, allowing all tests to be completed. We recommend you refer to the Marathon Cloud documentation for the details of the platform.

The Marathon Cloud component is an integrated test automation workflow step for the Appcircle pipeline. You can easily include it in your workflow on Appcircle with the necessary parameters and run your UI tests.

Prerequisites

This component needs some prerequisites for proper operation; the necessary steps are given in the table below with details.

caution

Please note that this component works separately on both the native Android and iOS platforms. The requirements for both platforms are different.

Prerequisite Workflow StepDescription
Xcodebuild for TestingAfter the Xcodebuild for Testing step runs, the test IPA paths $AC_TEST_IPA_PATH and $AC_UITESTS_RUNNER_PATH will be created automatically. So that the Marathon Cloud component depends on these paths.
Android Build for UI TestingOnce the Android Build for UI Testing step is completed, the test APK paths $AC_APK_PATH and $AC_TEST_APK_PATH are automatically generated. The Marathon Cloud component relies on these paths.
danger

When using this component for the iOS platform, do not forget to change the Destination value in the Xcodebuild for Testing step. This value will be generic/platform=iOS by default. This means that it creates a generic test IPA for all iOS devices. Since the Marathon Cloud component runs on a specific test device, you need to change this value. For example, platform=iOS Simulator,name=iPhone 15 Pro,OS=17.2.

Please note that if you do not change this parameter, the Marathon Cloud component will fail and the pipeline will break. For further information, please follow the Xcodebuild for Testing documentation.

For Android

For iOS

Input Variables

The parameters required for the operation of this component are given below with explanations. 

danger

Avoid hard-coding sensitive variables, such as tokens or API keys, directly into the parameters of the step.

We recommend using Environment Variables groups for such sensitive variables.

Variable NameDescriptionStatus
$AC_MARATHON_API_KEYMarathon Cloud API key. To get an API key, please follow the Marathon Cloud documentation.Required
$AC_MARATHON_TEST_NAMEThis name will be shown on the Marathon Cloud dashboard test run list.Required
$AC_MARATHON_APP_PATHSpecify the path to the application binary. This application is generated by the corresponding testing step (Android Build for UI Testing or Xcodebuild for Testing). The default value is AC_APK_PATH for Android or AC_TEST_IPA_PATH for iOS.Required
$AC_MARATHON_UITEST_RUNNER_APP_PATHSpecifies the path to the test application binary. This application is generated by the corresponding testing step (Android Build for UI Testing or Xcodebuild for Testing). The default value is AC_TEST_APK_PATH for Android or AC_UITESTS_RUNNER_PATH for iOS.Required
$AC_OUTPUT_DIRSpecifies the path for Marathon Cloud outputs. This path will be automatically defined. Do not change if it is not necessary.Required

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

Preview of GitHub - appcircleio/appcircle-marathonlabs-component