feat(ci): add mobile E2E dispatch trigger for React Native (ENG-2344)#1865
feat(ci): add mobile E2E dispatch trigger for React Native (ENG-2344)#1865luans-qa wants to merge 3 commits into
Conversation
On every PR push that touches apps/wallets/expo, packages/wallets, or packages/client, dispatches to crossmint-mobile-e2e-tests via repository_dispatch. The test repo builds the app, runs Maestro flows, and posts a commit status check back to this PR. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Prompt To Fix All With AIFix the following 2 code review issues. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 2
.github/workflows/e2e-mobile-trigger.yml:17-19
**Missing concurrency control**
Without a `concurrency` group, every push to a PR dispatches a separate E2E run to `crossmint-mobile-e2e-tests`. If a developer pushes two commits in quick succession, both runs will report a status back to `commit_sha` — whichever finishes last wins, but the intermediate status (e.g., an early `failure` overwritten by a later `success`) can confuse reviewers and wastes CI resources in the external repo. A `concurrency` key with `cancel-in-progress: true` ensures only the run for the latest push is live at any time.
### Issue 2 of 2
.github/workflows/e2e-mobile-trigger.yml:6-7
**Draft PRs are not excluded**
The trigger fires on `opened`, `synchronize`, and `reopened` with no draft exclusion. Heavy E2E jobs will kick off for every draft push, even before the PR is ready for review. Adding `ready_for_review` to the `types` list and excluding `draft: true` (or using an `if:` guard) is the common pattern for avoiding wasted E2E cycles on work-in-progress branches.
Reviews (1): Last reviewed commit: "feat(ci): add mobile E2E dispatch trigge..." | Re-trigger Greptile |
- Add concurrency group keyed on PR number with cancel-in-progress so rapid successive pushes don't queue multiple dispatches to the test repo - Add ready_for_review to pull_request types so converting a draft fires - Add if: draft == false guard so pushes to draft PRs are silently skipped Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Reviews (2): Last reviewed commit: "fix(ci): add concurrency control and ski..." | Re-trigger Greptile |
|
Fixed in d899fa7. Added |
Replace the broad packages/client/** glob with the specific packages the Expo app depends on: - apps/wallets/shared/** (@crossmint/wallets-playground-shared) - packages/client/ui/react-native/** (@crossmint/client-sdk-react-native-ui) - packages/client/rn-window/** (RN window polyfill) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Reviews (3): Last reviewed commit: "fix(ci): narrow mobile E2E trigger paths..." | Re-trigger Greptile |
| - "apps/wallets/expo/**" | ||
| - "apps/wallets/shared/**" | ||
| - "packages/wallets/**" | ||
| - "packages/client/ui/react-native/**" |
There was a problem hiding this comment.
you're missing react-base
Summary
.github/workflows/e2e-mobile-trigger.ymlwhich fires on every PR push touchingapps/wallets/expo/**,packages/wallets/**, orpackages/client/**crossmint-mobile-e2e-testsviarepository_dispatch— the test repo builds the app, runs Maestro flows, and posts amobile-e2e / react-nativecommit status check back to this PRDepends on:
Crossmint/crossmint-mobile-e2e-testsPR #1 being merged first (the test repo workflows must exist before this dispatch has something to call).Test plan
crossmint-mobile-e2e-testsPR Updated button styling to add logo and white text over dark bckg #1 firstapps/wallets/expo/— confirm themobile-e2e / react-nativestatus check appears on the PR