yoqa talks to a local runner on the GitHub-hosted (or self-hosted) machine. This is not a cloud device farm: you still need a simulator or emulator, Appium (yoqa doctor --fix / yoqa runtime ensure), and a catalog (apps/cases) on that host.
The HTML file is the same self-contained report as desktop Export HTML (inline CSS + step screenshots). GitHub Job Summaries cannot hold those images (1MB cap), so CI also writes a compact text summary and uploads the HTML as an artifact.
Composite actions live in this repository:
Aris-ngoy/qa-agent/.github/actions/setup-yoqa and …/yoqa-report. Pin a tag or SHA in production workflows.Setup the CLI
~/.yoqa/runtime between jobs so managed Appium is not reinstalled every run. Host Node/npm must stay on PATH.
Create a run, then publish the report
yoqa runs create returns immediately (queued). In CI, wait for a terminal status, then always export the report (even when the run failed):
--wait on create exits 1 when the run errored (cancelled stays 0). The report action uses if: always() so the HTML artifact still uploads. It then fails the job if fail-on-error is true (default) and the run status is errored.
Equivalent CLI-only report step:
CLI flags
--no-github-summary / --no-github-output disable the auto-detect.
Prerequisites
- macOS + Xcode for iOS Simulator jobs; Linux + KVM (or macOS) for Android emulators
- A connected device session:
yoqa devices connect … - Apps and cases already in the runner catalog on that machine (
yoqa apps/yoqa cases). Catalog-as-code is not in this CLI yet. - Agent /
--descriptionruns need provider secrets
examples/expo-demo.
CLI reference
Commands, doctor, devices, runs
Local testing
What runs on your machine vs cloud