UNPKG

@devicecloud.dev/dcd

Version:

Better cloud maestro testing

93 lines (92 loc) 6.93 kB
import { Command } from '@oclif/core'; /** * Primary CLI command for executing tests on DeviceCloud. * Orchestrates the complete test workflow: * - Binary upload with SHA deduplication * - Flow file analysis and dependency resolution * - Device compatibility validation * - Test submission with parallel execution * - Real-time result polling with 10-second intervals * - Artifact download (reports, videos, logs) * * Replaces `maestro cloud` with DeviceCloud-specific functionality. */ export default class Cloud extends Command { static args: { firstFile: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; secondFile: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>; }; static description: string; static enableJsonFlag: boolean; static examples: string[]; static flags: { 'artifacts-path': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'junit-path': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'allure-path': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'html-path': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; async: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; debug: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; 'download-artifacts': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'dry-run': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; 'json-file': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; 'json-file-name': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; report: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; config: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'exclude-flows': import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>; 'exclude-tags': import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>; flows: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'include-tags': import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>; 'maestro-version': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; retry: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>; 'runner-type': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; env: import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>; metadata: import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>; mitmHost: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; mitmPath: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'moropo-v1-api-key': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; name: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'android-api-level': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'android-device': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'device-locale': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'google-play': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; 'ios-device': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'ios-version': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; orientation: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'show-crosshairs': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; 'maestro-chrome-onboarding': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; 'android-no-snapshot': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; 'app-binary-id': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'app-file': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; 'ignore-sha-check': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>; apiKey: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; apiUrl: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>; }; /** Service for device/OS compatibility validation */ private deviceValidationService; /** Service for Moropo test framework integration */ private moropoService; /** Service for downloading test reports and artifacts */ private reportDownloadService; /** Service for polling test results with 10-second intervals */ private resultsPollingService; /** Service for submitting tests to the API */ private testSubmissionService; /** * Check for CLI updates and notify user if outdated * Compares current version with latest npm release * @returns Promise that resolves when version check is complete */ private versionCheck; /** Service for CLI version checking */ private versionService; /** * Main command execution entry point * Orchestrates the complete test submission and monitoring workflow * @returns Promise that resolves when command execution is complete * @throws RunFailedError if tests fail * @throws Error for infrastructure or configuration errors */ run(): Promise<any>; }