Skip to content

Commit 517c9b1

Browse files
Copilotamitabh94
andauthored
Merge branch 'main' into feat/ramps-ub2-immediate-order-details-after-webview-callback
Co-authored-by: amitabh94 <12572750+amitabh94@users.noreply.github.com>
2 parents f93f34d + ea0f772 commit 517c9b1

666 files changed

Lines changed: 30071 additions & 15086 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.ai-pr-analyzer/config.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ critical:
2121
- android/settings.gradle
2222
- android/gradle.properties
2323
- android/app/build.gradle
24-
- bitrise.yml
2524
- builds.yml
2625
- .github/workflows/ci.yml
2726
- .github/workflows/build.yml

.detoxrc.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,6 @@ module.exports = {
100100
forceAdbInstall: true,
101101
gpuMode: 'swiftshader_indirect',
102102
},
103-
'android.bitrise.emulator': {
104-
type: 'android.emulator',
105-
device: {
106-
avdName: 'emulator',
107-
},
108-
// optimized for Bitrise CI runners
109-
bootArgs: '-verbose -show-kernel -no-audio -netdelay none -no-snapshot -wipe-data -gpu auto -no-window -no-boot-anim -read-only',
110-
forceAdbInstall: true,
111-
}
112103
},
113104
apps: {
114105
'ios.debug': {

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
# Windows files should use crlf line endings
22
# https://help.github.com/articles/dealing-with-line-endings/
33
*.bat text eol=crlf
4+
5+
# Shell scripts must keep LF so they run in WSL on Windows.
6+
*.sh text eol=lf

.github/CODEOWNERS

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ app/components/hooks/useMetrics/ @MetaMask/mobile-pla
2626
app/selectors/featureFlagController/* @MetaMask/mobile-platform
2727
app/selectors/featureFlagController/minimumAppVersion/ @MetaMask/mobile-platform
2828
app/store/migrations/ @MetaMask/mobile-platform
29-
bitrise.yml @MetaMask/mobile-platform
3029
ios/Podfile.lock @MetaMask/mobile-platform
3130
app/components/Views/BrowserTab/BrowserTab.tsx @MetaMask/mobile-platform
3231
app/components/Nav/NavigationProvider @MetaMask/mobile-platform
@@ -146,12 +145,16 @@ app/core/Engine/controllers/bridge-controller @MetaMask/swaps-enginee
146145
app/core/Engine/controllers/bridge-status-controller @MetaMask/swaps-engineers
147146

148147
# Notifications Team
149-
app/components/Views/Notifications @MetaMask/notifications
150-
app/components/Views/Settings/NotificationsSettings @MetaMask/notifications
151-
**/Notifications/** @MetaMask/notifications
152-
**/Notification/** @MetaMask/notifications
153-
**/notifications/** @MetaMask/notifications
154-
**/notification/** @MetaMask/notifications
148+
**/*Braze*/ @MetaMask/engagement
149+
**/*Braze* @MetaMask/engagement
150+
**/*braze*/ @MetaMask/engagement
151+
**/*braze* @MetaMask/engagement
152+
app/components/Views/Notifications @MetaMask/engagement
153+
app/components/Views/Settings/NotificationsSettings @MetaMask/engagement
154+
**/Notifications/** @MetaMask/engagement
155+
**/Notification/** @MetaMask/engagement
156+
**/notifications/** @MetaMask/engagement
157+
**/notification/** @MetaMask/engagement
155158

156159
# LavaMoat Team
157160
ses.cjs @MetaMask/supply-chain
@@ -206,7 +209,7 @@ app/components/Views/Homepage/Sections/Perpetuals/ @MetaMask/perps
206209
# Social & AI Team
207210
app/components/Views/SocialLeaderboard/ @MetaMask/social-ai
208211
app/components/UI/MarketInsights/ @MetaMask/social-ai
209-
app/components/Views/Homepage/Sections/WhatsHappening/ @MetaMask/social-ai
212+
app/components/UI/WhatsHappening/ @MetaMask/social-ai
210213
app/components/Views/Homepage/Sections/TopTraders/ @MetaMask/social-ai
211214
app/core/Engine/controllers/social-controller-init* @MetaMask/social-ai
212215
app/core/Engine/controllers/social-service-init* @MetaMask/social-ai

.github/CONTRIBUTING.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,8 @@ When you're done with your project / bugfix / feature and ready to submit a PR,
2323
- [ ] **Get the PR reviewed by code owners**: At least two code owner approvals are mandatory before merging any PR.
2424
- [ ] **Ensure the PR is correctly labeled.**: More detail about labels definitions can be found [here](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md).
2525

26+
### Shadow CI jobs
27+
28+
CI jobs prefixed with `[shadow]` (e.g., from `ci-namespace-shadow.yml`) are **advisory only** and never gate merge. They run the same test suite on Namespace runners for performance benchmarking. If a shadow job fails, it does not indicate a problem with your PR -- it reflects the state of the Namespace runner migration trial.
29+
2630
And that's it! Thanks for helping out.

.github/actions/setup-e2e-env/action.yml

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,17 @@ inputs:
9191
description: 'Runner provider forwarded from the caller workflow chain. When set to "namespace", toolchain-install steps short-circuit if the pinned version is already on the image. Default "current" preserves byte-identical behaviour on existing GitHub-hosted / Cirrus runners.'
9292
required: false
9393
default: 'current'
94+
js-retry-timeout-minutes:
95+
description: >-
96+
Per-attempt timeout (minutes) for Corepack and yarn install retry steps.
97+
Namespace E2E matrix jobs often need more headroom (INFRA-3596).
98+
required: false
99+
default: '15'
100+
pod-install-timeout-minutes:
101+
description: >-
102+
Per-attempt timeout (minutes) for the CocoaPods install retry step (iOS only).
103+
required: false
104+
default: '15'
94105

95106
runs:
96107
using: 'composite'
@@ -161,9 +172,9 @@ runs:
161172
sudo chown -R "$(id -u):$(id -g)" "$CACHE_PATH" /opt/android-sdk/.temp
162173
shell: bash
163174

164-
# Restore exact system image from cache
175+
# Restore exact system image from cache (GitHub only — Namespace uses nscloud-cache-action in callers)
165176
- name: Restore Android system image from cache
166-
if: ${{ inputs.platform == 'android' && inputs.setup-simulator == 'true' }}
177+
if: ${{ inputs.platform == 'android' && inputs.setup-simulator == 'true' && inputs.runner_provider != 'namespace' }}
167178
id: android-system-image-cache
168179
uses: actions/cache/restore@v4
169180
with:
@@ -215,6 +226,7 @@ runs:
215226
${{
216227
inputs.platform == 'android' &&
217228
inputs.setup-simulator == 'true' &&
229+
inputs.runner_provider != 'namespace' &&
218230
steps.android-system-image-cache.outputs.cache-hit != 'true' &&
219231
github.event_name != 'pull_request' &&
220232
github.event_name != 'pull_request_target' &&
@@ -289,12 +301,13 @@ runs:
289301
id: corepack
290302
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 #v3.0.2
291303
with:
292-
timeout_minutes: 15
304+
timeout_minutes: ${{ fromJSON(inputs.js-retry-timeout-minutes) }}
293305
max_attempts: 3
294306
retry_wait_seconds: 30
295307
command: ${{ steps.get-corepack-command.outputs.COREPACK_COMMAND }}
296308

297309
- name: Restore Yarn cache
310+
if: ${{ inputs.runner_provider != 'namespace' }}
298311
uses: actions/cache@v4
299312
with:
300313
path: |
@@ -309,7 +322,7 @@ runs:
309322
id: yarn-install
310323
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 #v3.0.2
311324
with:
312-
timeout_minutes: 15
325+
timeout_minutes: ${{ fromJSON(inputs.js-retry-timeout-minutes) }}
313326
max_attempts: 3
314327
retry_wait_seconds: 30
315328
on_retry_command: echo "⚠️ yarn install failed — likely a transient network issue on the self-hosted runner. Retrying..."
@@ -342,7 +355,7 @@ runs:
342355
shell: bash
343356

344357
- name: Restore Bundler cache
345-
if: ${{ inputs.platform == 'ios' }}
358+
if: ${{ inputs.platform == 'ios' && inputs.runner_provider != 'namespace' }}
346359
uses: actions/cache@v4
347360
with:
348361
path: ios/vendor/bundle
@@ -399,7 +412,7 @@ runs:
399412
shell: bash
400413

401414
- name: Restore CocoaPods specs cache
402-
if: ${{ inputs.platform == 'ios' }}
415+
if: ${{ inputs.platform == 'ios' && inputs.runner_provider != 'namespace' }}
403416
id: cocoapods-specs-cache
404417
uses: actions/cache@v4
405418
with:
@@ -413,7 +426,7 @@ runs:
413426
if: ${{ inputs.platform == 'ios'}}
414427
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 #v3.0.2
415428
with:
416-
timeout_minutes: 15
429+
timeout_minutes: ${{ fromJSON(inputs.pod-install-timeout-minutes) }}
417430
max_attempts: 3
418431
retry_wait_seconds: 60
419432
on_retry_command: |

.github/actions/smart-e2e-selection/action.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ inputs:
2727
required: false
2828
default: 'false'
2929
base-ref:
30-
description: 'PR base branch ref passed to the AI analysis script for diff comparison. When release/*, AI selection is skipped and the full E2E suite is selected.'
30+
description: 'PR base branch ref passed to the AI analysis script for diff comparison. When release/* or stable, AI selection is skipped and the full E2E suite is selected.'
3131
required: false
3232
default: ''
3333
outputs:
@@ -57,15 +57,15 @@ runs:
5757
echo "⏭️ SKIP=true due to 'skip-smart-e2e-selection' label on PR"
5858
fi
5959
60-
- name: Check release target branch (full E2E, no AI selection)
60+
- name: Check release or stable target branch (full E2E, no AI selection)
6161
id: check-release-target
6262
shell: bash
6363
run: |
6464
echo "SKIP=false" >> "$GITHUB_OUTPUT"
6565
BASE='${{ inputs.base-ref }}'
66-
if [[ -n "$BASE" && "$BASE" == release/* ]]; then
66+
if [[ -n "$BASE" && ( "$BASE" == release/* || "$BASE" == "stable" ) ]]; then
6767
echo "SKIP=true" >> "$GITHUB_OUTPUT"
68-
echo "⏭️ Base branch is release/* — skipping AI E2E selection; full E2E suite will run"
68+
echo "⏭️ Base branch is release/* or stable — skipping AI E2E selection; full E2E suite will run"
6969
fi
7070
7171
- name: Checkout for PR analysis
@@ -142,9 +142,9 @@ runs:
142142
echo "SKIP_REASON=skip-smart-e2e-selection label found" >> "$GITHUB_OUTPUT"
143143
echo "ai_confidence=100" >> "$GITHUB_OUTPUT"
144144
elif [[ "${{ steps.check-release-target.outputs.SKIP }}" == "true" ]]; then
145-
echo "⏭️ Skipping AI analysis - PR targets a release branch (release/*)"
145+
echo "⏭️ Skipping AI analysis - PR targets a release or stable branch"
146146
echo "SKIPPED=true" >> "$GITHUB_OUTPUT"
147-
echo "SKIP_REASON=PR targets a release branch (release/*)" >> "$GITHUB_OUTPUT"
147+
echo "SKIP_REASON=PR targets a release or stable branch (release/* or stable)" >> "$GITHUB_OUTPUT"
148148
echo "ai_confidence=100" >> "$GITHUB_OUTPUT"
149149
else
150150
echo "✅ Running AI analysis for PR #$PR_NUMBER"

.github/guidelines/E2E_DECISION_TREE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Flakiness detection is applied to modified E2E test files in PRs:
5656

5757
## Release branches
5858

59-
PRs to release branches (cherry-picked from main) are exempt from the following:
59+
PRs to release branches (cherry-picks from main to release/\* branches and PRs to stable branch) are exempt from the following:
6060

6161
- Label `pr-not-ready-for-e2e` is not applied
6262
- Smart AI E2E selection is skipped - all E2E suites are run (if changes are not ignorable-only, e.g. only docs)

.github/rules/filter-rules.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ config_files: &config_files
4444
# CI/GITHUB FILES — overridden by e2e_related_workflows below
4545
ci_files: &ci_files
4646
- '.github/**'
47-
- 'bitrise.yml'
4847

4948
# ALL IGNORABLE FILES - safe to skip E2E
5049
e2e_ignorable:

.github/scripts/bitrise/.yarnrc

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)