Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Comment |
🦋 Changeset detectedLatest commit: 4d2e482 The changes in this PR will be included in the next version bump. This PR includes changesets to release 0 packagesWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 00:47
1c5dda6 to
857b339
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 00:47
8df30c1 to
3f84067
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 00:50
3f84067 to
a8d3a72
Compare
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 00:50
857b339 to
95dcfea
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 04:37
a8d3a72 to
888ca43
Compare
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 04:37
95dcfea to
da01c53
Compare
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 12:03
da01c53 to
a41dd66
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 12:03
888ca43 to
82c1950
Compare
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 14:19
a41dd66 to
8a906f0
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 14:19
82c1950 to
e30aa43
Compare
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 14:39
8a906f0 to
ae22325
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 14:39
e30aa43 to
d8902ee
Compare
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 15:19
ae22325 to
5053f9a
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 15:19
d8902ee to
ddad046
Compare
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 15:39
5053f9a to
f4c574b
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 15:39
ddad046 to
6a7fa08
Compare
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 16:49
f4c574b to
795ca89
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 16:49
6a7fa08 to
dfba920
Compare
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 20:40
795ca89 to
aa119ba
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 20:40
dfba920 to
c11bb10
Compare
`attach` posted the video and screenshots of a run as a pull request comment. It now writes them into the description with `gh pr edit --attach`, in one block between two HTML comments that name the platform. A later `attach` replaces the block, so the description holds the latest run. Everything outside the block is passed back as it was read. `attach` reads the description again just before it writes. If the description changed, it rebuilds on the new text once, and fails if it changed again. It refuses a description whose markers are doubled, halved, or out of order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mikepitre
force-pushed
the
mike/expo-verify-ci-device-specs
branch
from
October 8, 2026 20:45
aa119ba to
a686127
Compare
mikepitre
force-pushed
the
mike/expo-verify-borrowed-device
branch
from
October 8, 2026 20:46
c11bb10 to
4d2e482
Compare
This branch was successfully deployed
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.
Description
The end-to-end tests in #10087 run on a simulator or an emulator on the machine that runs their CLI, so they need a Mac for iOS and hardware virtualization for Android. An agent in a cloud sandbox often has neither. This PR adds a second backend to that CLI. On a machine that cannot run the device,
upstarts a session on a GitHub Actions runner, and the CLI drives the device there through a tunnel, with the same verbs, tests, and evidence. No session has been started from the commits in this PR.The tests and the CLI are the package
integration/expo-native/, and theverify-clerk-exposkill is the instructions that point an agent at it. This is the last PR of the stack: #10052, then #10087, then #10090, then this one. Nothing in the other three needs it.Four commits, in dependency order.
src/fixture.tsin commit 1 are the only edits to code that #10087 and #10090 added.The unit tests for commits 1 and 2 arrive in commit 3.
Everything under
integration/expo-native/src/core/and most of the unit tests are the same files, byte for byte, in clerk/clerk-ios#661 and clerk/clerk-android#1069.src/core/MANIFESTlists the core files with their hashes, and a unit test fails when one drifts. Review them once.What changes:
--backend remoteondoctor,up, andrunforces the remote backend. With no flag the CLI picks the local backend where the machine can run the device and the remote one anywhere else, and its first line says which and why. A worktree keeps the backend it started with untildown.verify-remote.ymlruns one session for either platform. It builds the pushed commit, never the working tree, as a Release app with the JS embedded, so the device needs no Metro. It boots the device, records the video, and ends ondown, after 15 idle minutes, or at 60 minutes.--runner <label>onuporrunnames the runner for a new session. The defaults aremacos-26for iOS andubuntu-24.04for Android.doctorchecks that GitHub has HEAD and that this machine reaches GitHub, the tunnel host, and Clerk. It starts nothing without--live.doctor --livestarts one short session and stops it.run.jsongainsremote, with the provider, the runner label, and the commit the session built. It isnullfor a local run.downends the runner job.down --stalealso ends a session that a crashed run of the same checkout left running.deviceToolCommand, which decides theadbarguments a test may send to a device, moves toremote/protocol.ts, because the session on the runner applies the same rule.references/remote.md.Expo Native Runner Testsjob inci.ymlnow also runs whenverify-remote.ymlchanges, because a unit test reads that file.In the package,
test/remote-host.test.tsis this repository's own. It also holds the unit tests of the two build products and the fixture build from #10087 and #10090.To try it, on any machine with Node 24.8 or newer, the team's Clerk Platform API key, and push access to this repository:
On a machine that cannot run the device, leave out
--backend remote. On a free runner labeluptakes tens of minutes, nearly all of it the build.Someone with write access starts a session, by
workflow_dispatchonly. The workflow has nopull_requestorpushtrigger and uses no secret. Its onepermissionsblock iscontents: read, so no job can write to the repository.Every route on the tunnel answers 403 without a bearer token that the CLI made. The token stays under
integration/expo-native/.verify/remote/on the machine that started the session. The workflow gets only its SHA-256. The tunnel is a Cloudflare quick tunnel, so Cloudflare can read the traffic, which includes sign-in tickets for test users. The Clerk application is a throwaway one thatdowndeletes, and the runner never gets a secret key.A session costs nothing on the default labels, which are free for a public repository and slow.
--runner blacksmith-6vcpu-macos-26for iOS or--runner blacksmith-8vcpu-ubuntu-2204for Android is faster and billed by the minute.A run on a machine's own device takes the same path as before this PR. The new code runs only when the CLI picks the remote backend, and the workflow in #10090 does not use it. Outside the package and the skill directory, this PR adds
verify-remote.yml, one path inci.yml, one line in.prettierignore, and an edit to the skill's row in.claude/skills/README.md.Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change
🤖 Generated with Claude Code