Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,34 @@ jobs:
with:
name: output_ios
path: output

check_simple_maestro_android:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Run tests
uses: ./
with:
apiKey: ${{ secrets.MARATHON_CLOUD_API_TOKEN }}
application: "example/maestro/android/wikipedia.apk"
testApplication: "example/maestro/android/flows"
platform: "maestro/android"
name: "maestro_android_simple"
version: "1.0.51"

check_simple_maestro_ios:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Run tests
uses: ./
with:
apiKey: ${{ secrets.MARATHON_CLOUD_API_TOKEN }}
application: "example/maestro/ios/wikipedia.zip"
testApplication: "example/maestro/ios/flows"
platform: "maestro/ios"
name: "maestro_ios_simple"
version: "1.0.51"

24 changes: 16 additions & 8 deletions action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,17 @@ inputs:
description: "Application binary path, e.g. apk file for Android or zip file of iOS Application"
required: true
testApplication:
description: "Test application binary path, e.g. apk file for Android or zip file of iOS Test Runner app"
description: "Test application binary path, e.g. apk file for Android or zip file of iOS Test Runner app or folder containing maestro flow"
required: true
platform:
description: "Testing platform. Android or iOS only"
description: "Testing platform. [Android,iOS,Maestro/Android,Maestro/iOS]"
required: true
osVersion:
description: "Android or iOS OS version. For Android one of [10, 11, 12, 13, 14]. For iOS one of [16.4, 17.2]"
description: "Android or iOS OS version. For Android one of [8.1, 9, 10, 11, 12, 13, 14, 15, 16]. For iOS one of [17.5, 18.2, 18.4]"
required: false
systemImage:
description: "OS-specific system image. For Android one of [default,google_apis]. For iOS only [default]"
description: "OS-specific system image. For Android one of [default,google_apis,google_apis_playstore]. For iOS only [default]"
required: false
link:
description: "Link to commit"
required: false
Expand All @@ -41,16 +42,15 @@ inputs:
required: false
wait:
description: "Wait for test run to finish if true, exits after triggering a run if false. Defaults to true"
default: "true"
required: false
name:
description: "Name for run, for example it could be description of commit"
required: false
device:
description: "Device type. For Android one of [phone, tv, watch]. For iOS one of [iPhone-14, iPhone-15]"
description: "Device type. For Android one of [phone, tv, watch]. For iOS one of [iPhone-11, iPhone-15, iPhone-15-Pro, iPhone-15-Pro-Max, iPhone-16, iPhone-16-Plus, iPhone-16-Pro, iPhone-16-Pro-Max]"
required: false
xcodeVersion:
description: "Xcode version. Only for iOS. Possible values: [14.3.1, 15.2]"
description: "Xcode version. Only for iOS. Possible values: [15.4, 16.2, 16.3]"
required: false
xctestplanFilterFile:
description: "Test filters supplied as .xctestplan file"
Expand Down Expand Up @@ -97,6 +97,12 @@ inputs:
noRetries:
description: "Disable all retries [possible values: true, false]"
required: false
maestroEnv:
description: "maestro environment variables, format: 'MAESTRO_APP_ID=com.example,MAESTRO_OTHER_VAR=blahblah'"
required: false
flows:
description: "maestro flows to execute, all the files specified should be inside the testApplication folder: 'flows/my-flow.yaml,flows/subfolder/flow.yaml'"
required: false
branding:
color: purple
icon: play-circle
Expand All @@ -108,7 +114,7 @@ runs:
with:
version: ${{ inputs.version }}
- name: Run tests using marathon-cloud
uses: MarathonLabs/action-invoke@1.0.14
uses: MarathonLabs/action-invoke@1.0.15
with:
apiKey: ${{ inputs.apiKey }}
application: ${{ inputs.application }}
Expand Down Expand Up @@ -141,3 +147,5 @@ runs:
retryQuotaTestPreventive: ${{ inputs.retryQuotaTestPreventive }}
retryQuotaTestReactive: ${{ inputs.retryQuotaTestReactive }}
noRetries: ${{ inputs.noRetries }}
maestroEnv: ${{ inputs.maestroEnv }}
flows: ${{ inputs.flows}}
16 changes: 16 additions & 0 deletions example/maestro/android/flows/android-advanced-flow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
appId: org.wikipedia
tags:
- android
- passing
- advanced
---
- runFlow: subflows/onboarding-android.yaml
- tapOn:
id: "org.wikipedia:id/search_container"
- tapOn:
text: "Non existent view"
optional: true
- runScript: scripts/getSearchQuery.js
- inputText: ${output.result}
- assertVisible: ${output.result}
- runFlow: subflows/launch-clearstate-android.yaml
6 changes: 6 additions & 0 deletions example/maestro/android/flows/android-failing.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
appId: org.wikipedia
tags:
- android
- passing
---
- launchApp
7 changes: 7 additions & 0 deletions example/maestro/android/flows/android-flow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
appId: org.wikipedia
tags:
- android
- passing
---
- launchApp
- assertVisible: "Doesn't exist"
1 change: 1 addition & 0 deletions example/maestro/android/flows/scripts/getSearchQuery.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
output.result = 'qwerty';
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
appId: org.wikipedia
---
- launchApp:
clearState: true
- assertVisible: "Continue"
- assertVisible: "Skip"
15 changes: 15 additions & 0 deletions example/maestro/android/flows/subflows/onboarding-android.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
appId: org.wikipedia
---
- launchApp:
clearState: true
- tapOn:
text: "Non existent view"
optional: true
- tapOn:
id: "org.wikipedia:id/fragment_onboarding_forward_button"
- tapOn:
id: "org.wikipedia:id/fragment_onboarding_forward_button"
- tapOn:
id: "org.wikipedia:id/fragment_onboarding_forward_button"
- tapOn:
id: "org.wikipedia:id/fragment_onboarding_done_button"
Binary file added example/maestro/android/wikipedia.apk
Binary file not shown.
25 changes: 25 additions & 0 deletions example/maestro/ios/flows/ios-advanced-flow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
appId: org.wikimedia.wikipedia
tags:
- ios
- passing
- advanced
---
- runFlow: subflows/onboarding-ios.yaml

# Dismiss the auth modal if visible
- runFlow:
when:
visible: "You have been logged out"
commands:
- tapOn:
text: "Continue without logging in"
- tapOn:
text: "Non existent view"
optional: true
- tapOn: Search Wikipedia
- runScript: scripts/getSearchQuery.js
- inputText: ${output.result}
- eraseText
- inputText: qwerty
- assertVisible: ${output.result}
- runFlow: subflows/launch-clearstate-ios.yaml
7 changes: 7 additions & 0 deletions example/maestro/ios/flows/ios-failing.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
appId: org.wikipedia
tags:
- ios
- failing
---
- launchApp
- assertVisible: "Doesn't exist"
6 changes: 6 additions & 0 deletions example/maestro/ios/flows/ios-flow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
appId: org.wikimedia.wikipedia
tags:
- ios
- passing
---
- launchApp
1 change: 1 addition & 0 deletions example/maestro/ios/flows/scripts/getSearchQuery.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
output.result = 'qwerty';
6 changes: 6 additions & 0 deletions example/maestro/ios/flows/subflows/launch-clearstate-ios.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
appId: org.wikimedia.wikipedia
---
- launchApp:
clearState: true
- assertVisible: "Next"
- assertVisible: "Skip"
15 changes: 15 additions & 0 deletions example/maestro/ios/flows/subflows/onboarding-ios.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
appId: org.wikimedia.wikipedia
---
- launchApp:
clearState: true
- repeat:
times: 3
commands:
- swipe:
direction: LEFT
duration: 400
- waitForAnimationToEnd
- tapOn: Get started
- tapOn:
text: "Non existent view"
optional: true
Binary file added example/maestro/ios/wikipedia.zip
Binary file not shown.
Loading