ci: verbose setup during CI#33151
Conversation
The setup script has been updated to use a verbose logger in CI, and to forward logs from each sub-step to the parent process. This will make it easier to understand delays and diagnose problems. This verbose mode is also usable locally with the new `--verbose` flag.
PR template — items to address before "Ready for review"Warnings — informational, address before merging:
See docs/readme/ready-for-review.md for the full Definition of Ready for Review. |
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection:
These changes only affect how the setup script outputs information during the build/setup process. They have zero impact on:
No E2E test tags are warranted for this purely build-tooling change. Performance Test Selection: |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5e5c912. Configure here.
| if (INSTALL_PODS && !BUILD_IOS) { | ||
| throw new Error('Cannot install pods if iOS setup has been skipped'); | ||
| } | ||
| const $ = runScript(VERBOSE ? {stdio: 'inherit'} : undefined); |
There was a problem hiding this comment.
Bundler stderr check breaks CI
Medium Severity
When verbose mode is on (CI by default), the shared execa helper uses stdio: 'inherit', so failed subprocesses no longer populate error.stderr. The GitHub CI bundler install path treats missing stderr as a real failure and rethrows, so an already-installed bundler can fail setup instead of being ignored.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 5e5c912. Configure here.
There was a problem hiding this comment.
This doesn't fail for me locally when bundler isn't installed 🤔 That error handling path might already be obsolete.
|





Description
The setup script has been updated to use a verbose logger in CI, and to forward logs from each sub-step to the parent process. This will make it easier to understand delays and diagnose problems.
This verbose mode is also usable locally with the new
--verboseflag.Changelog
CHANGELOG entry: null
Related issues
N/A
Manual testing steps
Run
yarn setuplocally to confirm that it works the same as before.Try
yarn setup --verboseto test the new verbose mode (or just look in the CI logs for this PR).Screenshots/Recordings
N/A
Pre-merge author checklist
Performance checks (if applicable)
trace()for usage andaddTokenfor an exampleFor performance guidelines and tooling, see the Performance Guide.
Pre-merge reviewer checklist
Note
Low Risk
Dev/CI tooling only; no app runtime, auth, or data-path changes.
Overview
scripts/setup.mjsturns on verbose setup logging whenCIis set, and adds a--verboseflag for the same behavior locally.When verbose is on, execa runs with
stdio: 'inherit'so sub-step output (yarn, pods, etc.) streams to the parent instead of being hidden behind Listr’s default UI. The root Listr task list also switches from the default renderer toverbose, so CI logs show more detail for stalls and failures.Default local runs without
--verbosestay unchanged.Reviewed by Cursor Bugbot for commit 5e5c912. Bugbot is set up for automated code reviews on this repo. Configure here.