A config.yaml (or config.yml) file lets you configure how the CLI discovers, filters, and runs your flows without needing to pass every option on the command line. It is recommended for any project with more than a handful of flows.
Place your config.yaml file at the root of the directory you pass to dcd cloud and the CLI will pick it up automatically.
dcd cloud app.apk flows/ # flows/config.yaml is loaded automaticallyUse --config to load a config file from a non-standard location:
dcd cloud app.apk flows/ --config ci/workspace.yamlGlob patterns that select which flow files to run. Accepts a list of patterns using the NPM glob syntax.
flows:
- ./**/*.yaml # all YAML files recursively
- ./smoke/*.yaml # only files inside smoke/Files named config.yaml / config.yml and paths containing .app path segments are always excluded regardless of the pattern.
If flows is omitted, all .yaml / .yml files in the directory (except config files) are included.
Filter flows by their Maestro tags. Values here are merged with any tags set using the CLI flags.
includeTags:
- smoke
excludeTags:
- slow
- wipRun a subset of flows sequentially (in order) before the remaining flows run in parallel.
executionOrder:
continueOnFailure: false
flowsOrder:
- login # matches flow with name: "login" or file login.yaml
- checkout
- paymentflowsOrder— list of flow names to run in sequence. A name matches either thename:field inside the flow YAML or the filename without extension.continueOnFailure— iftrue, subsequent flows in the sequence run even if an earlier one fails. Defaults tofalse.
{% hint style="info" %}
If a flow name in flowsOrder doesn't match any discovered flow (e.g. after tag filtering), the CLI will emit a warning and lists the available names to help diagnose the mismatch.
{% endhint %}
Send email notifications when a run completes. See Notifications for full context.
notifications:
email:
enabled: true
onSuccess: false # set to true to also notify on passing runs
recipients:
- team@example.com
- ci-alerts@example.comPer-platform settings. Currently supports disabling animations, which is equivalent to passing --disable-animations on the CLI but lets you control each platform independently. The CLI flag takes precedence if both are set.
platform:
android:
disableAnimations: true # disables system animation scales
ios:
disableAnimations: true # enables Reduce Motion on the simulatorflows:
- ./**/*.yaml
includeTags:
- smoke
excludeTags:
- wip
executionOrder:
continueOnFailure: false
flowsOrder:
- login
- onboarding
notifications:
email:
enabled: true
onSuccess: false
recipients:
- team@example.com
platform:
android:
disableAnimations: true
ios:
disableAnimations: true