Skip to content

MarathonLabs/action-invoke

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

MarathonLabs/action-invoke

This action wraps marathon-cloud CLI in your GitHub Actions workflow.

Action Inputs

Name Description Default Example
apiKey (required) Marathon Cloud API key `` cafebabe
application (required) Application binary path.
Android: application should point to the APK file.
iOS: application should point to an ARM compatible Simulator build packaged in an ipa format or a zip archive.
Android: app/build/outputs/apk/debug/app-debug.apk
iOS: /home/user/workspace/sample.zip or /home/user/workspace/sample.ipa
testApplication (required) Test application binary path.
Android: test_application should point to the test .apk file for your app.
iOS: test_application should point to an ARM compatible iOS Test Runner app packaged in an ipa format or a zip archive.
Android: app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk
iOS: /home/user/workspace/sampleUITests-Runner.zip or /home/user/workspace/sampleUITests-Runner.ipa
platform (required) Testing platform `` Android or iOS
osVersion (optional) Android or iOS OS version. For Android one of [10, 11, 12, 13, 14]. For iOS one of [16.4, 17.2] Android: 11; iOS: 16.4 12, 17.2, etc.
systemImage (optional) OS-specific system image. For Android only `` default, google_apis, etc.
output (optional) Output folder path `` ``
link (optional) Link to commit `` ``
isolated (optional) Run each test in isolation, i.e. isolated batching false true, false
flavor (optional) Type of tests to run native native, js-test-appium, python-robotframework-appium
filterFile (optional) File containing test filters in YAML format, following the schema described at https://docs.marathonlabs.io/runner/configuration/filtering/#filtering-logic. For iOS see also https://docs.marathonlabs.io/runner/next/ios#test-plans. `` ``
wait (optional) Wait for test run to finish if true, exits after triggering a run if false. `` true
name (optional) Name for run, for example it could be description of commit. `` AmazingRun
device (optional) Device type. For Android one of [phone, tv, watch]. For iOS one of [iPhone-14, iPhone-15] Android: phone; iOS: iPhone-14 phone, tv, watch, iPhone-14, iPhone-15
xcodeVersion (optional) Xcode version. Only for iOS. Possible values: [14.3.1, 15.2] 14.3.1 14.3.1, 15.2
xctestplanFilterFile (optional) Test filters supplied as .xctestplan file `` ``
xctestplanTargetName (optional) Target name to use for test filtering in .xctestplan `` ``
xctestrunEnv (optional) Xctestrun environment variables, format: 'VAR1=VALUE1,VAR2=VALUE2' `` VAR1=VALUE1,VAR2=VALUE2
xctestrunTestEnv (optional) Xctestrun testing environment variables, format: 'VAR1=VALUE1,VAR2=VALUE2' `` VAR1=VALUE1,VAR2=VALUE2
ignoreTestFailures (optional) When tests fail and this option is true then GHA will exit with code 0. By default, GHA will exit with code 1 in case of test failures and 0 for passing tests [possible values: true, false] false true, false

Usage Examples

Basic

Android

- name: run tests using marathon-cloud
  uses: MarathonLabs/action-invoke@1
  with:
    apiKey: "cafebabe"
    application: "/home/user/workspace/sample.apk"
    testApplication: "/home/user/workspace/testSample.apk"
    platform: "android"

iOS

- name: run tests using marathon-cloud
  uses: MarathonLabs/action-invoke@1
  with:
    apiKey: "cafebabe"
    application: "/home/user/workspace/sample.zip"
    testApplication: "/home/user/workspace/sampleUITests-Runner.zip"
    platform: "ios"

Developing

The action source is located at /src. The action is written in TypeScript and compiled to a single javascript file with ncc. It's expected to checkin lib/index.js to the repository.

To setup the development environment, run the following commands:

$ npm install

To build the action script, run the following command:

$ npm run build

To test the action, we can use the workflow Test workflow to trigger a build.

LICENSE

MIT