Skip to content

Commit 3de0bcc

Browse files
test: runs mm-connect tests on rc only for Samsung devices (#29805)
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until this PR meets the canonical Definition of Ready For Review in `docs/readme/ready-for-review.md`. In short: the template must be materially complete (not just section titles present), all status checks must be currently passing, and the only expected follow-up commits must be reviewer-driven. --> ## **Description** This PR makes the following changes to the MMConnect runs: - Only run on Samsung Devices -> reduces consumption on browserstack and keeps tests stable - Only run on `rc` environment <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/MMQA-1797 ## **Manual testing steps** N/A ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** N/A <!-- [screenshots/recordings] --> ### **After** N/A <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** <!-- Every checklist item must be consciously assessed before marking this PR as "Ready for review". A checked box means you deliberately considered that responsibility, not that you literally performed every action listed. Unchecked boxes are ambiguous: they are not an implicit "N/A" and they are not a silent "skip". See `docs/readme/ready-for-review.md` for the full checklist semantics. --> - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I've included tests if applicable - [x] I've documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I've applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. #### Performance checks (if applicable) - [ ] I've tested on Android - Ideally on a mid-range device; emulator is acceptable - [ ] I've tested with a power user scenario - Use these [power-user SRPs](https://consensyssoftware.atlassian.net/wiki/spaces/TL1/pages/edit-v2/401401446401?draftShareId=9d77e1e1-4bdc-4be1-9ebb-ccd916988d93) to import wallets with many accounts and tokens - [ ] I've instrumented key operations with Sentry traces for production performance metrics - See [`trace()`](/app/util/trace.ts) for usage and [`addToken`](/app/components/Views/AddAsset/components/AddCustomToken/AddCustomToken.tsx#L274) for an example For performance guidelines and tooling, see the [Performance Guide](https://consensyssoftware.atlassian.net/wiki/spaces/TL1/pages/400085549067/Performance+Guide+for+Engineers). ## **Pre-merge reviewer checklist** <!-- Reviewer checklist items follow the same semantics as the author checklist: an unchecked box is ambiguous, a checked box means the reviewer consciously assessed that responsibility. See `docs/readme/ready-for-review.md`. --> - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Changes CI workflow conditions and device selection for MM-Connect runs, which could unintentionally reduce test coverage or skip runs if the matrix/filter is wrong. No production app code changes, but it affects release-signal reliability. > > **Overview** > Updates the performance E2E GitHub workflow to **scope Android MM-Connect runs more narrowly**. > > MM-Connect now uses a dedicated `android_mm_connect_matrix` filtered to Samsung devices, and both the MM-Connect job and the RN Playground APK upload step are gated to run only when `build_variant` is `rc` (skipping these steps for experimental builds). > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 1fb6325. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent 2686994 commit 3de0bcc

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

.github/workflows/run-performance-e2e.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ jobs:
142142
needs: [determine-branch-name]
143143
outputs:
144144
android_matrix: ${{ steps.read-matrix.outputs.android_matrix }}
145+
android_mm_connect_matrix: ${{ steps.read-matrix.outputs.android_mm_connect_matrix }}
145146
ios_matrix: ${{ steps.read-matrix.outputs.ios_matrix }}
146147
steps:
147148
- name: Checkout code
@@ -165,18 +166,23 @@ jobs:
165166
fi
166167
167168
ANDROID_MATRIX=$(jq ".android_devices | $FILTER" "$FILE")
169+
ANDROID_MM_CONNECT_MATRIX=$(jq '[.android_devices[] | select(.name | contains("Samsung"))]' "$FILE")
168170
IOS_MATRIX=$(jq ".ios_devices | $FILTER" "$FILE")
169171
170172
{
171173
echo "android_matrix<<EOF"
172174
echo "$ANDROID_MATRIX"
173175
echo "EOF"
176+
echo "android_mm_connect_matrix<<EOF"
177+
echo "$ANDROID_MM_CONNECT_MATRIX"
178+
echo "EOF"
174179
echo "ios_matrix<<EOF"
175180
echo "$IOS_MATRIX"
176181
echo "EOF"
177182
} >> "$GITHUB_OUTPUT"
178183
179184
echo "Selected: $(echo "$ANDROID_MATRIX" | jq length) Android, $(echo "$IOS_MATRIX" | jq length) iOS"
185+
echo "Selected for Android MM-Connect: $(echo "$ANDROID_MM_CONNECT_MATRIX" | jq length)"
180186
181187
set-build-names:
182188
name: Set Unified BrowserStack Build Names
@@ -333,7 +339,7 @@ jobs:
333339
name: Fetch RN Playground APK and Upload to BrowserStack
334340
runs-on: ubuntu-latest
335341
needs: [wait-for-onboarding-completion]
336-
if: always() && !cancelled()
342+
if: always() && !cancelled() && (inputs.build_variant || 'rc') == 'rc'
337343
outputs:
338344
browserstack-playground-url: ${{ steps.upload-playground.outputs.browserstack-url }}
339345
steps:
@@ -376,13 +382,13 @@ jobs:
376382
set-build-names,
377383
determine-branch-name,
378384
]
379-
if: always() && !cancelled() && (needs.trigger-android-dual-versions.result == 'skipped' || needs.trigger-android-dual-versions.result == 'success') && (inputs.browserstack_app_url_android_imported_wallet != '' || needs.trigger-android-dual-versions.outputs.with-srp-browserstack-url != '')
385+
if: always() && !cancelled() && (inputs.build_variant || 'rc') == 'rc' && (needs.trigger-android-dual-versions.result == 'skipped' || needs.trigger-android-dual-versions.result == 'success') && (inputs.browserstack_app_url_android_imported_wallet != '' || needs.trigger-android-dual-versions.outputs.with-srp-browserstack-url != '')
380386
with:
381387
platform: android
382388
build_type: mm-connect
383389
sentry_target: ${{ inputs.sentry_target || 'test' }}
384390
build_variant: ${{ inputs.build_variant || 'rc' }}
385-
device_matrix: ${{ needs.read-device-matrix.outputs.android_matrix }}
391+
device_matrix: ${{ needs.read-device-matrix.outputs.android_mm_connect_matrix }}
386392
browserstack_app_url: ${{ needs.trigger-android-dual-versions.outputs.with-srp-browserstack-url || inputs.browserstack_app_url_android_imported_wallet }}
387393
app_version: ${{ needs.trigger-android-dual-versions.outputs.with-srp-version || 'Manual-Input' }}
388394
branch_name: ${{ needs.determine-branch-name.outputs.branch_name }}

0 commit comments

Comments
 (0)