Run your Flows on Maestro Cloud.
Trigger this action on (1) pushes to your main branch and (2) pull requests opened against your main branch:
on:
push:
branches: [master]
pull_request:
branches: [master]
If you need to use the pull_request_target
trigger to support repo forks, check out the HEAD of the pull request to ensure that you're running the analysis against the changed code:
on:
push:
branches: [master]
pull_request_target:
branches: [master]
jobs:
upload-to-mobile-dev:
name: Run Flows on Maestro Cloud
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }} # Checkout PR HEAD
- uses: mobile-dev-inc/[email protected]
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: app/build/outputs/apk/debug/app-debug.apk
app-file
should point to an x86 compatible APK file, either directly to the file or a glob pattern matching the file name. When using a pattern, the first matched file will be used.
Include the Proguard mapping file to deobfuscate Android performance traces:
- uses: mobile-dev-inc/[email protected]
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: app/build/outputs/apk/release/app-release.apk
mapping-file: app/build/outputs/mapping/release/mapping.txt
- uses: mobile-dev-inc/[email protected]
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: <app_name>.app
mapping-file: <app_name>.app.dSYM
app-file
should point to an x86 compatible Simulator .app build, either directly to the file or a glob pattern matching the file name. When using a pattern, the first matched file will be used.
- uses: mobile-dev-inc/[email protected]
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: <app_name>.app
mapping-file: <app_name>.app.dSYM
mapping-file
should point to generated .dSYM file (unique per build). more info here.
By default, the action is looking for a .maestro
folder with Maestro flows in the root directory of the project. If you would like to customize this behaviour, you can override it with a workspace
argument:
- uses: mobile-dev-inc/[email protected]
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: app.zip
workspace: myFlows/
A name will automatically be provided according to the following order:
- If it is a Pull Request, use Pull Request title as name
- If it is a normal push, use commit message as name
- If for some reason the commit message is not available, use the commit SHA as name
If you want to override this behaviour and specify your own name, you can do so by setting the name
argument:
- uses: mobile-dev-inc/[email protected]
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: app.zip
name: My Upload
If you don't want the action to wait until the Upload has been completed as is the default behaviour, set the async
argument to true
:
- uses: mobile-dev-inc/[email protected]
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: app.zip
async: true
If you want to pass environment variables along with your upload, add a multiline env
argument:
- uses: mobile-dev-inc/[email protected]
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: app.zip
env: |
USERNAME=<username>
PASSWORD=<password>
You can use Maestro (Tags)[https://maestro.mobile.dev/cli/tags] to filter which Flows to send to Maestro Cloud:
You can either pass a single value, or comma-separated (,
) values.
- uses: mobile-dev-inc/[email protected]
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: app.zip
include-tags: dev, pull-request
exclude-tags: excludeTag