ci: Gate size analysis on ready-to-merge label for PRs#5963
ci: Gate size analysis on ready-to-merge label for PRs#5963
Conversation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Semver Impact of This PR⚪ None (no version bump detected) 📋 Changelog PreviewThis is how your changes will appear in the changelog.
🤖 This preview updates automatically when you update the PR. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix prepared a fix for the issue found in the latest run.
- ✅ Fixed: Missing
labeledevent type breaks ready-to-merge gate- Added
types: [opened, synchronize, reopened, labeled]to thepull_requesttrigger insize-analysis.ymlso adding theready-to-mergelabel re-runs the workflow gate.
- Added
Or push these changes by commenting:
@cursor push 4768a9d168
Preview (4768a9d168)
diff --git a/.github/workflows/size-analysis.yml b/.github/workflows/size-analysis.yml
--- a/.github/workflows/size-analysis.yml
+++ b/.github/workflows/size-analysis.yml
@@ -9,6 +9,7 @@
- 'samples/react-native/**'
- '.github/workflows/size-analysis.yml'
pull_request:
+ types: [opened, synchronize, reopened, labeled]
paths:
- 'packages/**'
- 'samples/react-native/**'This Bugbot Autofix run was free. To enable autofix for future PRs, go to the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 6c98311. Configure here.
| RN_SENTRY_POD_NAME: RNSentry | ||
|
|
||
| jobs: | ||
| ready-to-merge-gate: |
There was a problem hiding this comment.
Missing labeled event type breaks ready-to-merge gate
High Severity
The pull_request trigger is missing types: [opened, synchronize, reopened, labeled]. Without the labeled type, adding the ready-to-merge label won't re-trigger the workflow. The gate will fail on initial PR events (no label yet), and the workflow will never re-run when the label is added — effectively blocking size analysis on all PRs. Every other workflow using this gate pattern (native-tests.yml, e2e-v2.yml, sample-application.yml, sample-application-expo.yml) includes the labeled event type.
Additional Locations (1)
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit 6c98311. Configure here.
| RN_SENTRY_POD_NAME: RNSentry | ||
|
|
||
| jobs: |
There was a problem hiding this comment.
Bug: The size-analysis.yml workflow won't trigger when a label is added to a pull request because the on.pull_request trigger is missing the labeled activity type.
Severity: MEDIUM
Suggested Fix
Add labeled to the list of activity types under the on.pull_request trigger in the .github/workflows/size-analysis.yml file. This will ensure the workflow is triggered when labels are added to pull requests.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.
Location: .github/workflows/size-analysis.yml#L26-L28
Potential issue: The `size-analysis.yml` workflow is configured to trigger on pull
requests, but it is missing the `labeled` activity type. As a result, when a label such
as `ready-to-merge` is added to a pull request, the size analysis job will not be
initiated. If this job is a required status check for merging, the pull request will be
blocked from merging because the check will remain in a pending state indefinitely.
Did we get this right? 👍 / 👎 to inform future reviews.
|
@antonis are the comments above relevant? |
Android (legacy) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| df5d108+dirty | 527.06 ms | 603.58 ms | 76.52 ms |
| 2c735cc+dirty | 414.09 ms | 438.47 ms | 24.38 ms |
| a50b33d+dirty | 500.81 ms | 532.11 ms | 31.30 ms |
| 3817909+dirty | 406.67 ms | 416.58 ms | 9.91 ms |
| 5c1e987+dirty | 423.52 ms | 471.64 ms | 48.12 ms |
| 4953e94+dirty | 442.02 ms | 456.52 ms | 14.50 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| df5d108+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| 2c735cc+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| a50b33d+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| 3817909+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| 5c1e987+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| 4953e94+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
iOS (legacy) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| a50b33d+dirty | 1197.74 ms | 1197.17 ms | -0.57 ms |
| 3817909+dirty | 1183.90 ms | 1187.50 ms | 3.60 ms |
| 5c1e987+dirty | 1204.30 ms | 1222.15 ms | 17.85 ms |
| 2c735cc+dirty | 1229.67 ms | 1221.50 ms | -8.17 ms |
| 4953e94+dirty | 1212.06 ms | 1214.83 ms | 2.77 ms |
| df5d108+dirty | 1225.90 ms | 1220.14 ms | -5.76 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| a50b33d+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 3817909+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 5c1e987+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 2c735cc+dirty | 3.38 MiB | 4.74 MiB | 1.35 MiB |
| 4953e94+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| df5d108+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
Android (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| df5d108+dirty | 434.82 ms | 447.39 ms | 12.57 ms |
| 2c735cc+dirty | 435.20 ms | 459.48 ms | 24.28 ms |
| a50b33d+dirty | 353.21 ms | 398.48 ms | 45.27 ms |
| 3817909+dirty | 357.52 ms | 391.52 ms | 34.00 ms |
| 5c1e987+dirty | 444.71 ms | 475.13 ms | 30.42 ms |
| 4953e94+dirty | 398.80 ms | 431.81 ms | 33.01 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| df5d108+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 2c735cc+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| a50b33d+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 3817909+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 5c1e987+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 4953e94+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
iOS (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| a50b33d+dirty | 1207.11 ms | 1212.10 ms | 5.00 ms |
| 3817909+dirty | 1210.76 ms | 1215.64 ms | 4.89 ms |
| 5c1e987+dirty | 1208.43 ms | 1220.72 ms | 12.29 ms |
| 2c735cc+dirty | 1223.33 ms | 1224.38 ms | 1.04 ms |
| 4953e94+dirty | 1217.41 ms | 1223.53 ms | 6.12 ms |
| df5d108+dirty | 1207.34 ms | 1210.50 ms | 3.16 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| a50b33d+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 3817909+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 5c1e987+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 2c735cc+dirty | 3.38 MiB | 4.74 MiB | 1.35 MiB |
| 4953e94+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| df5d108+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
lucas-zimerman
left a comment
There was a problem hiding this comment.
ci seems to be failing for the ready-to-merge flag



📢 Type of change
📜 Description
Adds the
ready-to-mergelabel gate to the Size Analysis workflow, matching the pattern used by other expensive CI workflows (native tests, E2E, sample builds).ready-to-mergelabel is presentmainpushes: jobs run unconditionally (gate passes through)💡 Motivation and Context
The size analysis workflow builds full iOS and Android sample apps, which is expensive. Gating it behind
ready-to-mergesaves CI resources on PRs that aren't ready yet.💚 How did you test it?
Verified the workflow follows the same pattern as
native-tests.yml,e2e-v2.yml,sample-application.yml, andsample-application-expo.yml.📝 Checklist
sendDefaultPIIis enabled🔮 Next steps