cli: drop-in flags, Allure reports and Maestro Cloud aliases (TB-374) - #34
Merged
Conversation
…llure reports and Maestro Cloud aliases (TB-374) Closes the remaining gaps that block a one-line migration from devicecloud.dev or maestro cloud: - --branch, --pr-url and repeatable -m/--metadata KEY=VALUE ride on the run metadata the server already stores verbatim (the dashboard renders branch today). - --exclude-flows drops files, directories or globs from the bundle before dependency discovery, so an excluded flow that is still runFlow'd elsewhere ships as a subflow but never runs on its own. - --report allure converts the JUnit XML into allure-results JSON client-side (one result per flow with steps, timings, failure details) for both maestro and artifacts. - Hidden aliases accept the maestro cloud spelling: --app-file, --flows, --apiKey, --device-model, --device-os (iOS-18-2 / android-34 with an API-level table), --format, --output, --test-suite-name. Canonical flags win. Repeatable options allocate a fresh array per parse instead of a shared default, which is what let values leak across invocations.
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes the remaining flag gaps that block a one-line migration from
dcd cloudormaestro cloud.--branch,--pr-url,-m/--metadata KEY=VALUE(repeatable) are sent in the run metadata the server already stores verbatim. The dashboard rendersbranchtoday;pullRequestUrlandcustomare stored and available for a follow-up UI tweak.--exclude-flows <paths>(comma-separated, repeatable) drops files, directories or globs from the bundle before dependency discovery. An excluded flow still referenced viarunFlowships as a subflow but never runs standalone. Excluding everything fails clearly.--report allureformaestroandartifacts: the JUnit XML is converted client-side intoallure-results/<uuid>-result.json(one per flow with ordered steps, timings, status, failure message/trace, device labels). No XML parser dependency; the format is Maestro's own and stable. Results from several runs accumulate in the same directory.--help:--app-file,--flows a,b,--apiKey,--device-model iPhone-17-Pro→iPhone 17 Pro,--device-os iOS-18-2/android-34(API level → OS version table),--format JUNIT|HTML|NOOP,--output <file>(its directory becomes--report-output-dir, with a warning),--test-suite-name. Canonical flags win when both are given.[]was leaking values across invocations (the same trap--other-appalready works around).Jira: TB-374 (epic TB-370).
Test plan
npm test— 716 passed (21 new: Allure converter, CLI flag wiring and aliases, flow exclusion, Allure via fetchReports)npm run lint,npm run buildmaestro cloudspelling:--app-file … --flows … --device-model iPhone-17-Pro --device-os iOS-18-2 --format JUNIT --output out/report.xml --test-suite-name nightly --branch main --pr-url … -m team=mobile→ capabilitiesiPhone 17 Pro/ iOS / 18.2 / name nightly, metadata with branch, pullRequestUrl and customartifacts --id 91595 --report allure --report-output-dir …→ one result JSON with 15 steps,passedpullRequestUrlandcustommetadata (web repo follow-up)