Skip to main content
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

Equivalent without the composite action:
Cache ~/.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 / --description runs need provider secrets
For a device-connector smoke that does not use catalog runs, see this repo’s Demo Expo E2E workflow and examples/expo-demo.

CLI reference

Commands, doctor, devices, runs

Local testing

What runs on your machine vs cloud