Skip to content

[visual spike] No visual change - #1

Open
robhogan wants to merge 2 commits into
mainfrom
visual-spike/no-change
Open

robhogan wants to merge 2 commits into
mainfrom
visual-spike/no-change

Conversation

@robhogan

@robhogan robhogan commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Phase 0 spike test: a PR with no visual change. The visual checks are expected to pass.

Phase 0 spike for RNTester visual regression testing in public CI: capture cropped screenshots in an untrusted workflow, then compare, report and publish baselines from a trusted workflow that treats the captures as inert data. Baselines and reports live in object storage, not Git.

**Changes**

- Visual flows under `packages/rn-tester/visual-tests/`, starting with the wrapped text width mode example. They deep-link to the example and capture with `takeScreenshot`, so Maestro never decides pass or fail.
- `Visual Capture RNTester` builds RNTester Release, captures on an API 35 emulator and an iPhone 17 Pro iOS 26.2 simulator, and uploads PNGs plus a manifest recording the commit and device environment.
- `Visual Compare RNTester` runs on `workflow_run` from the default branch. It validates the artifact, finds the baseline for the base commit or its nearest ancestor with one, compares with pixelmatch (strict by default, per-test overrides in `config.json`), uploads the report and sets check runs. On pushes to `main` it publishes write-once baselines keyed by environment and commit.
- `Visual Approve RNTester` records a maintainer's `visual-change-approved` label against a fingerprint of the exact differences, so a later push with different differences needs a new approval.
- `maestro-android.js` and `maestro-ios.js` forward `VISUAL_OUTPUT_DIR` to Maestro when set.

Changelog: [Internal]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant