Skip to content

Commit 2e3f49c

Browse files
Merge branch 'main' into fix/perps/close-all-margin
2 parents 4b5a8ca + 1623d46 commit 2e3f49c

File tree

110 files changed

+3106
-2625
lines changed

Some content is hidden

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

110 files changed

+3106
-2625
lines changed

.detoxrc.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ module.exports = {
2222
$0: 'jest',
2323
config: 'e2e/jest.e2e.config.js',
2424
},
25-
detached: true,
25+
detached: process.env.CI ? true : false,
2626
jest: {
2727
setupTimeout: 220000,
2828
teardownTimeout: 60000, // Increase teardown timeout from default 30s to 60s
@@ -132,25 +132,25 @@ module.exports = {
132132
'android.debug': {
133133
type: 'android.apk',
134134
binaryPath: process.env.PREBUILT_ANDROID_APK_PATH || 'android/app/build/outputs/apk/prod/debug/app-prod-debug.apk',
135-
testBinaryPath: process.env.PREBUILT_ANDROID_TEST_APK_PATH,
135+
testBinaryPath: process.env.PREBUILT_ANDROID_TEST_APK_PATH || 'android/app/build/outputs/apk/androidTest/prod/debug/app-prod-debug-androidTest.apk',
136136
build: 'export CONFIGURATION="Debug" && yarn build:android:main:e2e',
137137
},
138138
'android.release': {
139139
type: 'android.apk',
140140
binaryPath: process.env.PREBUILT_ANDROID_APK_PATH || 'android/app/build/outputs/apk/prod/release/app-prod-release.apk',
141-
testBinaryPath: process.env.PREBUILT_ANDROID_TEST_APK_PATH,
141+
testBinaryPath: process.env.PREBUILT_ANDROID_TEST_APK_PATH || 'android/app/build/outputs/apk/androidTest/prod/release/app-prod-release-androidTest.apk',
142142
build: `export CONFIGURATION="Release" && yarn build:android:main:e2e`,
143143
},
144144
'android.flask.debug': {
145145
type: 'android.apk',
146146
binaryPath: process.env.PREBUILT_ANDROID_APK_PATH || 'android/app/build/outputs/apk/flask/debug/app-flask-debug.apk',
147-
testBinaryPath: process.env.PREBUILT_ANDROID_TEST_APK_PATH,
147+
testBinaryPath: process.env.PREBUILT_ANDROID_TEST_APK_PATH || 'android/app/build/outputs/apk/androidTest/flask/debug/app-flask-debug-androidTest.apk',
148148
build: 'export CONFIGURATION="Debug" && yarn build:android:flask:e2e',
149149
},
150150
'android.flask.release': {
151151
type: 'android.apk',
152152
binaryPath: process.env.PREBUILT_ANDROID_APK_PATH || 'android/app/build/outputs/apk/flask/release/app-flask-release.apk',
153-
testBinaryPath: process.env.PREBUILT_ANDROID_TEST_APK_PATH,
153+
testBinaryPath: process.env.PREBUILT_ANDROID_TEST_APK_PATH || 'android/app/build/outputs/apk/androidTest/flask/release/app-flask-release-androidTest.apk',
154154
build: `export CONFIGURATION="Release" && yarn build:android:flask:e2e`,
155155
},
156156
},

.github/CODEOWNERS

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ app/core/Engine/types.ts @MetaMask/mobile-pla
4242
app/core/Engine/controllers/remote-feature-flag-controller/ @MetaMask/mobile-platform
4343
app/core/DeeplinkManager @MetaMask/mobile-platform
4444
scripts/build.sh @MetaMask/mobile-platform
45-
scripts/update-expo-channel.js @MetaMask/mobile-admins
4645

4746
# Platform & Snaps Code Fencing File
4847
metro.transform.js @MetaMask/mobile-platform @MetaMask/core-platform

.github/workflows/build-android-e2e.yml

Lines changed: 83 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,13 @@ jobs:
7272
echo "🚀 Setting up project..."
7373
yarn setup:github-ci --no-build-ios
7474
75-
# Generate fingerprint AFTER setup but BEFORE any build modifications (the fingerprint now is fake we do not want the cached apk)
76-
- name: Generate current fingerprint
77-
id: generate-fingerprint
78-
run: |
79-
FINGERPRINT=$(yarn fingerprint:generate)
80-
echo "fingerprint=$FINGERPRINT" >> "$GITHUB_OUTPUT"
81-
echo "Current fingerprint: ${FINGERPRINT}"
75+
# # Generate fingerprint AFTER setup but BEFORE any build modifications (the fingerprint now is fake we do not want the cached apk)
76+
# - name: Generate current fingerprint
77+
# id: generate-fingerprint
78+
# run: |
79+
# FINGERPRINT=$(yarn fingerprint:generate)
80+
# echo "fingerprint=$FINGERPRINT" >> "$GITHUB_OUTPUT"
81+
# echo "Current fingerprint: ${FINGERPRINT}"
8282

8383
- name: Determine target paths and Artifact Names
8484
id: determine-target-paths
@@ -102,26 +102,25 @@ jobs:
102102
exit 1
103103
fi
104104
105-
- name: Check and restore cached APKs if Fingerprint is found
106-
id: apk-cache-restore
107-
uses: cirruslabs/cache@v4
108-
with:
109-
path: |
110-
${{ steps.determine-target-paths.outputs.apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.apk
111-
${{ steps.determine-target-paths.outputs.test-apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}-androidTest.apk
112-
${{ steps.determine-target-paths.outputs.aab-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.aab
113-
# Include Gradle properties in key to force rebuild when properties change
114-
# Keep the `hashFiles` call for Gradle config in-sync with these steps:
115-
# - "Cache Gradle dependencies"
116-
# - "Cache build artifacts"
117-
key: android-apk-${{ inputs.build_type }}-${{ env.CACHE_GENERATION }}-${{ steps.generate-fingerprint.outputs.fingerprint }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
118-
restore-keys: |
119-
android-apk-${{ inputs.build_type }}-${{ env.CACHE_GENERATION }}-
120-
android-apk-
105+
# - name: Check and restore cached APKs if Fingerprint is found
106+
# id: apk-cache-restore
107+
# uses: cirruslabs/cache@v4
108+
# with:
109+
# path: |
110+
# ${{ steps.determine-target-paths.outputs.apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.apk
111+
# ${{ steps.determine-target-paths.outputs.test-apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}-androidTest.apk
112+
# ${{ steps.determine-target-paths.outputs.aab-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.aab
113+
# # Include Gradle properties in key to force rebuild when properties change
114+
# # Keep the `hashFiles` call for Gradle config in-sync with these steps:
115+
# # - "Cache Gradle dependencies"
116+
# # - "Cache build artifacts"
117+
# key: android-apk-${{ inputs.build_type }}-${{ env.CACHE_GENERATION }}-${{ steps.generate-fingerprint.outputs.fingerprint }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
118+
# restore-keys: |
119+
# android-apk-${{ inputs.build_type }}-${{ env.CACHE_GENERATION }}-
120+
# android-apk-
121121

122122
- name: Cache Gradle dependencies
123123
uses: cirruslabs/cache@v4
124-
if: ${{ steps.apk-cache-restore.outputs.cache-hit != 'true' }}
125124
env:
126125
GRADLE_CACHE_VERSION: 1
127126
with:
@@ -134,7 +133,6 @@ jobs:
134133
key: gradle-${{ env.GRADLE_CACHE_VERSION }}-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
135134

136135
- name: Build Android E2E APKs
137-
if: ${{ steps.apk-cache-restore.outputs.cache-hit != 'true' }}
138136
run: |
139137
echo "🏗 Building Android E2E APKs..."
140138
export NODE_OPTIONS="--max-old-space-size=8192"
@@ -183,68 +181,68 @@ jobs:
183181
GOOGLE_SERVICES_B64_ANDROID: ${{ secrets.GOOGLE_SERVICES_B64_ANDROID }}
184182
MM_INFURA_PROJECT_ID: ${{ secrets.MM_INFURA_PROJECT_ID }}
185183

186-
- name: Repack APK with JS updates using @expo/repack-app
187-
if: ${{ steps.apk-cache-restore.outputs.cache-hit == 'true' }}
188-
run: |
189-
echo "📦 Repacking APK with updated JavaScript bundle using @expo/repack-app..."
190-
# Use the optimized repack script which uses @expo/repack-app
191-
yarn build:repack:android
192-
echo "📦 Final APK size: $(du -h "${{ steps.determine-target-paths.outputs.apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.apk" | cut -f1)"
193-
env:
194-
PLATFORM: android
195-
METAMASK_ENVIRONMENT: ${{ inputs.metamask_environment }}
196-
METAMASK_BUILD_TYPE: ${{ inputs.build_type }}
197-
IS_TEST: true
198-
E2E: 'true'
199-
IGNORE_BOXLOGS_DEVELOPMENT: true
200-
GITHUB_CI: 'true'
201-
CI: 'true'
202-
NODE_OPTIONS: '--max-old-space-size=8192'
203-
BRIDGE_USE_DEV_APIS: 'true'
204-
RAMP_INTERNAL_BUILD: 'true'
205-
SEEDLESS_ONBOARDING_ENABLED: 'true'
206-
MM_NOTIFICATIONS_UI_ENABLED: 'true'
207-
MM_SECURITY_ALERTS_API_ENABLED: 'true'
208-
MM_REMOVE_GLOBAL_NETWORK_SELECTOR: 'true'
209-
FEATURES_ANNOUNCEMENTS_ACCESS_TOKEN: ${{ secrets.FEATURES_ANNOUNCEMENTS_ACCESS_TOKEN }}
210-
FEATURES_ANNOUNCEMENTS_SPACE_ID: ${{ secrets.FEATURES_ANNOUNCEMENTS_SPACE_ID }}
211-
SEGMENT_WRITE_KEY_QA: ${{ secrets.SEGMENT_WRITE_KEY_QA }}
212-
SEGMENT_WRITE_KEY_FLASK: ${{ secrets.SEGMENT_WRITE_KEY_FLASK }}
213-
SEGMENT_PROXY_URL_QA: ${{ secrets.SEGMENT_PROXY_URL_QA }}
214-
SEGMENT_PROXY_URL_FLASK: ${{ secrets.SEGMENT_PROXY_URL_FLASK }}
215-
SEGMENT_DELETE_API_SOURCE_ID_QA: ${{ secrets.SEGMENT_DELETE_API_SOURCE_ID_QA }}
216-
SEGMENT_DELETE_API_SOURCE_ID_FLASK: ${{ secrets.SEGMENT_DELETE_API_SOURCE_ID_FLASK }}
217-
SEGMENT_REGULATIONS_ENDPOINT_QA: ${{ secrets.SEGMENT_REGULATIONS_ENDPOINT_QA }}
218-
SEGMENT_REGULATIONS_ENDPOINT_FLASK: ${{ secrets.SEGMENT_REGULATIONS_ENDPOINT_FLASK }}
219-
MM_SENTRY_DSN_TEST: ${{ secrets.MM_SENTRY_DSN_TEST }}
220-
MM_SENTRY_AUTH_TOKEN: ${{ secrets.MM_SENTRY_AUTH_TOKEN }}
221-
MAIN_IOS_GOOGLE_CLIENT_ID_UAT: ${{ secrets.MAIN_IOS_GOOGLE_CLIENT_ID_UAT }}
222-
FLASK_IOS_GOOGLE_CLIENT_ID_PROD: ${{ secrets.FLASK_IOS_GOOGLE_CLIENT_ID_PROD }}
223-
MAIN_IOS_GOOGLE_REDIRECT_URI_UAT: ${{ secrets.MAIN_IOS_GOOGLE_REDIRECT_URI_UAT }}
224-
FLASK_IOS_GOOGLE_REDIRECT_URI_PROD: ${{ secrets.FLASK_IOS_GOOGLE_REDIRECT_URI_PROD }}
225-
MAIN_ANDROID_APPLE_CLIENT_ID_UAT: ${{ secrets.MAIN_ANDROID_APPLE_CLIENT_ID_UAT }}
226-
FLASK_ANDROID_APPLE_CLIENT_ID_PROD: ${{ secrets.FLASK_ANDROID_APPLE_CLIENT_ID_PROD }}
227-
MAIN_ANDROID_GOOGLE_CLIENT_ID_UAT: ${{ secrets.MAIN_ANDROID_GOOGLE_CLIENT_ID_UAT }}
228-
FLASK_ANDROID_GOOGLE_CLIENT_ID_PROD: ${{ secrets.FLASK_ANDROID_GOOGLE_CLIENT_ID_PROD }}
229-
MAIN_ANDROID_GOOGLE_SERVER_CLIENT_ID_UAT: ${{ secrets.MAIN_ANDROID_GOOGLE_SERVER_CLIENT_ID_UAT }}
230-
FLASK_ANDROID_GOOGLE_SERVER_CLIENT_ID_PROD: ${{ secrets.FLASK_ANDROID_GOOGLE_SERVER_CLIENT_ID_PROD }}
231-
GOOGLE_SERVICES_B64_IOS: ${{ secrets.GOOGLE_SERVICES_B64_IOS }}
232-
GOOGLE_SERVICES_B64_ANDROID: ${{ secrets.GOOGLE_SERVICES_B64_ANDROID }}
233-
MM_INFURA_PROJECT_ID: ${{ secrets.MM_INFURA_PROJECT_ID }}
184+
# - name: Repack APK with JS updates using @expo/repack-app
185+
# if: ${{ steps.apk-cache-restore.outputs.cache-hit == 'true' }}
186+
# run: |
187+
# echo "📦 Repacking APK with updated JavaScript bundle using @expo/repack-app..."
188+
# # Use the optimized repack script which uses @expo/repack-app
189+
# yarn build:repack:android
190+
# echo "📦 Final APK size: $(du -h "${{ steps.determine-target-paths.outputs.apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.apk" | cut -f1)"
191+
# env:
192+
# PLATFORM: android
193+
# METAMASK_ENVIRONMENT: ${{ inputs.metamask_environment }}
194+
# METAMASK_BUILD_TYPE: ${{ inputs.build_type }}
195+
# IS_TEST: true
196+
# E2E: 'true'
197+
# IGNORE_BOXLOGS_DEVELOPMENT: true
198+
# GITHUB_CI: 'true'
199+
# CI: 'true'
200+
# NODE_OPTIONS: '--max-old-space-size=8192'
201+
# BRIDGE_USE_DEV_APIS: 'true'
202+
# RAMP_INTERNAL_BUILD: 'true'
203+
# SEEDLESS_ONBOARDING_ENABLED: 'true'
204+
# MM_NOTIFICATIONS_UI_ENABLED: 'true'
205+
# MM_SECURITY_ALERTS_API_ENABLED: 'true'
206+
# MM_REMOVE_GLOBAL_NETWORK_SELECTOR: 'true'
207+
# FEATURES_ANNOUNCEMENTS_ACCESS_TOKEN: ${{ secrets.FEATURES_ANNOUNCEMENTS_ACCESS_TOKEN }}
208+
# FEATURES_ANNOUNCEMENTS_SPACE_ID: ${{ secrets.FEATURES_ANNOUNCEMENTS_SPACE_ID }}
209+
# SEGMENT_WRITE_KEY_QA: ${{ secrets.SEGMENT_WRITE_KEY_QA }}
210+
# SEGMENT_WRITE_KEY_FLASK: ${{ secrets.SEGMENT_WRITE_KEY_FLASK }}
211+
# SEGMENT_PROXY_URL_QA: ${{ secrets.SEGMENT_PROXY_URL_QA }}
212+
# SEGMENT_PROXY_URL_FLASK: ${{ secrets.SEGMENT_PROXY_URL_FLASK }}
213+
# SEGMENT_DELETE_API_SOURCE_ID_QA: ${{ secrets.SEGMENT_DELETE_API_SOURCE_ID_QA }}
214+
# SEGMENT_DELETE_API_SOURCE_ID_FLASK: ${{ secrets.SEGMENT_DELETE_API_SOURCE_ID_FLASK }}
215+
# SEGMENT_REGULATIONS_ENDPOINT_QA: ${{ secrets.SEGMENT_REGULATIONS_ENDPOINT_QA }}
216+
# SEGMENT_REGULATIONS_ENDPOINT_FLASK: ${{ secrets.SEGMENT_REGULATIONS_ENDPOINT_FLASK }}
217+
# MM_SENTRY_DSN_TEST: ${{ secrets.MM_SENTRY_DSN_TEST }}
218+
# MM_SENTRY_AUTH_TOKEN: ${{ secrets.MM_SENTRY_AUTH_TOKEN }}
219+
# MAIN_IOS_GOOGLE_CLIENT_ID_UAT: ${{ secrets.MAIN_IOS_GOOGLE_CLIENT_ID_UAT }}
220+
# FLASK_IOS_GOOGLE_CLIENT_ID_PROD: ${{ secrets.FLASK_IOS_GOOGLE_CLIENT_ID_PROD }}
221+
# MAIN_IOS_GOOGLE_REDIRECT_URI_UAT: ${{ secrets.MAIN_IOS_GOOGLE_REDIRECT_URI_UAT }}
222+
# FLASK_IOS_GOOGLE_REDIRECT_URI_PROD: ${{ secrets.FLASK_IOS_GOOGLE_REDIRECT_URI_PROD }}
223+
# MAIN_ANDROID_APPLE_CLIENT_ID_UAT: ${{ secrets.MAIN_ANDROID_APPLE_CLIENT_ID_UAT }}
224+
# FLASK_ANDROID_APPLE_CLIENT_ID_PROD: ${{ secrets.FLASK_ANDROID_APPLE_CLIENT_ID_PROD }}
225+
# MAIN_ANDROID_GOOGLE_CLIENT_ID_UAT: ${{ secrets.MAIN_ANDROID_GOOGLE_CLIENT_ID_UAT }}
226+
# FLASK_ANDROID_GOOGLE_CLIENT_ID_PROD: ${{ secrets.FLASK_ANDROID_GOOGLE_CLIENT_ID_PROD }}
227+
# MAIN_ANDROID_GOOGLE_SERVER_CLIENT_ID_UAT: ${{ secrets.MAIN_ANDROID_GOOGLE_SERVER_CLIENT_ID_UAT }}
228+
# FLASK_ANDROID_GOOGLE_SERVER_CLIENT_ID_PROD: ${{ secrets.FLASK_ANDROID_GOOGLE_SERVER_CLIENT_ID_PROD }}
229+
# GOOGLE_SERVICES_B64_IOS: ${{ secrets.GOOGLE_SERVICES_B64_IOS }}
230+
# GOOGLE_SERVICES_B64_ANDROID: ${{ secrets.GOOGLE_SERVICES_B64_ANDROID }}
231+
# MM_INFURA_PROJECT_ID: ${{ secrets.MM_INFURA_PROJECT_ID }}
234232

235233
# Cache build artifacts with the pre-build fingerprint
236-
- name: Cache build artifacts
237-
if: ${{ steps.apk-cache-restore.outputs.cache-hit != 'true' }}
238-
uses: cirruslabs/cache@v4
239-
with:
240-
path: |
241-
${{ steps.determine-target-paths.outputs.apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.apk
242-
${{ steps.determine-target-paths.outputs.test-apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}-androidTest.apk
243-
${{ steps.determine-target-paths.outputs.aab-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.aab
244-
# Keep the `hashFiles` call for Gradle config in-sync with these steps:
245-
# - "Check and restore cached APKs if Fingerprint is found"
246-
# - "Cache Gradle dependencies"
247-
key: android-apk-${{ inputs.build_type }}-${{ env.CACHE_GENERATION }}-${{ steps.generate-fingerprint.outputs.fingerprint }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
234+
# - name: Cache build artifacts
235+
# if: ${{ steps.apk-cache-restore.outputs.cache-hit != 'true' }}
236+
# uses: cirruslabs/cache@v4
237+
# with:
238+
# path: |
239+
# ${{ steps.determine-target-paths.outputs.apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.apk
240+
# ${{ steps.determine-target-paths.outputs.test-apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}-androidTest.apk
241+
# ${{ steps.determine-target-paths.outputs.aab-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.aab
242+
# # Keep the `hashFiles` call for Gradle config in-sync with these steps:
243+
# # - "Check and restore cached APKs if Fingerprint is found"
244+
# # - "Cache Gradle dependencies"
245+
# key: android-apk-${{ inputs.build_type }}-${{ env.CACHE_GENERATION }}-${{ steps.generate-fingerprint.outputs.fingerprint }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
248246

249247
- name: Upload Android APK
250248
id: upload-apk

.github/workflows/run-e2e-smoke-tests-android.yml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,20 @@ jobs:
2929
changed_files: ${{ inputs.changed_files }}
3030
secrets: inherit
3131

32-
perps-android-smoke:
33-
strategy:
34-
matrix:
35-
split: [1]
36-
fail-fast: false
37-
uses: ./.github/workflows/run-e2e-workflow.yml
38-
with:
39-
test-suite-name: perps-android-smoke-${{ matrix.split }}
40-
platform: android
41-
test_suite_tag: 'SmokePerps'
42-
split_number: ${{ matrix.split }}
43-
total_splits: 1
44-
changed_files: ${{ inputs.changed_files }}
45-
secrets: inherit
32+
# perps-android-smoke:
33+
# strategy:
34+
# matrix:
35+
# split: [1]
36+
# fail-fast: false
37+
# uses: ./.github/workflows/run-e2e-workflow.yml
38+
# with:
39+
# test-suite-name: perps-android-smoke-${{ matrix.split }}
40+
# platform: android
41+
# test_suite_tag: 'SmokePerps'
42+
# split_number: ${{ matrix.split }}
43+
# total_splits: 1
44+
# changed_files: ${{ inputs.changed_files }}
45+
# secrets: inherit
4646

4747
wallet-platform-android-smoke:
4848
strategy:
@@ -170,7 +170,7 @@ jobs:
170170
if: ${{ !cancelled() }}
171171
needs:
172172
- trade-android-smoke
173-
- perps-android-smoke
173+
# - perps-android-smoke
174174
- wallet-platform-android-smoke
175175
- identity-android-smoke
176176
- accounts-android-smoke

.js.env.example

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,6 @@ export WALLET_CONNECT_PROJECT_ID=""
4444
# Default PORT for metro
4545
export WATCHER_PORT=8081
4646

47-
# Expo Project ID for OTA updates
48-
export EXPO_PROJECT_ID=""
49-
5047
# Environment: "production", "pre-release" or "dev"
5148
export METAMASK_ENVIRONMENT="dev"
5249

@@ -95,9 +92,6 @@ export MM_SAMPLE_FEATURE_COUNTER_ENABLED="true"
9592
# The endpoint used to submit errors and tracing data to Sentry for dev environment.
9693
# export MM_SENTRY_DSN_DEV=
9794

98-
# Per dapp selected network feature flag
99-
export MM_PER_DAPP_SELECTED_NETWORK=""
100-
10195
# Remove global network selector flag
10296
export MM_REMOVE_GLOBAL_NETWORK_SELECTOR=""
10397

android/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ android {
187187
applicationId "io.metamask"
188188
minSdkVersion rootProject.ext.minSdkVersion
189189
targetSdkVersion rootProject.ext.targetSdkVersion
190-
versionName "7.59.0"
190+
versionName "7.60.0"
191191
versionCode 2818
192192
testBuildType System.getProperty('testBuildType', 'debug')
193193
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

android/gradle.properties.github

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
# GitHub Actions-specific Gradle settings
2-
# High-performance settings for 64GB/16CPU runners
2+
# Optimized for E2E builds on GitHub Actions runners
33

4-
# JVM configuration - high-performance for GitHub Actions
5-
org.gradle.jvmargs=-Xmx32g -XX:MaxMetaspaceSize=2g -XX:+UseG1GC -XX:G1HeapRegionSize=32m -XX:+UseStringDeduplication -XX:+OptimizeStringConcat
4+
# JVM configuration - balanced settings to avoid OOM while maintaining performance
5+
# Using 16GB heap to leave room for parallel workers and native memory
6+
org.gradle.jvmargs=-Xmx16g -XX:MaxMetaspaceSize=1g -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:+UseStringDeduplication -XX:+OptimizeStringConcat
67

7-
# Enable all performance optimizations for GitHub Actions
8+
# Enable performance optimizations but limit parallelism to prevent OOM
89
org.gradle.parallel=true
910
org.gradle.configureondemand=true
1011
org.gradle.caching=true
1112
org.gradle.daemon=true
12-
org.gradle.workers.max=12
13-
org.gradle.vfs.watch=true
13+
org.gradle.workers.max=6
14+
org.gradle.vfs.watch=false
1415

1516
# CI-specific optimizations - enabled for GitHub Actions
1617
kotlin.incremental=true

0 commit comments

Comments
 (0)