Skip to content

Commit b11dc50

Browse files
committed
Merge remote-tracking branch 'origin/main' into money-account-deposit-hardware-wallet-alert
2 parents 82a607a + daeee3b commit b11dc50

234 files changed

Lines changed: 7703 additions & 5588 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.

.depcheckrc.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ ignores:
4646
- 'xml2js'
4747
# jest-junit is used as a Jest reporter in tests/jest.e2e.detox.config.js
4848
- 'jest-junit'
49+
# Required directly only by scripts/babel/named-capturing-groups-regex.test.ts
50+
# (a regression guard for the @react-native/babel-preset patch). It's provided
51+
# transitively via @expo/metro-config + Metro, so we don't declare it as a
52+
# direct dependency.
53+
- 'babel-preset-expo'
4954

5055
# tsconfig path alias pointing to app/controllers/perps (not an npm package)
5156
- '@metamask/perps-controller'
@@ -76,7 +81,6 @@ ignores:
7681
- 'chromedriver'
7782
- 'execa'
7883
- 'jetifier'
79-
- 'metro-react-native-babel-preset'
8084
- 'react-native-svg-asset-plugin'
8185
- 'regenerator-runtime'
8286
- 'prettier-2'

.eslintrc.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,12 @@ const utilNumberImportBurndownFiles = [
9393
'app/components/UI/Stake/hooks/useBalance.ts',
9494
'app/components/UI/Tokens/util/deriveBalanceFromAssetMarketDetails.test.ts',
9595
'app/components/UI/Tokens/util/deriveBalanceFromAssetMarketDetails.ts',
96-
'app/components/UI/TransactionElement/utils-gas.js',
97-
'app/components/UI/TransactionElement/utils.js',
9896
'app/components/UI/UrlAutocomplete/Result.tsx',
9997
'app/components/Views/GasEducationCarousel/index.js',
10098
'app/components/Views/NetworksManagement/NetworkDetailsView/hooks/useNetworkValidation.ts',
10199
'app/components/Views/SocialLeaderboard/TraderPositionView/components/QuickBuyBottomSheet/useQuickBuyBottomSheet.ts',
102100
'app/components/Views/SocialLeaderboard/TraderPositionView/components/QuickBuyBottomSheet/useQuickBuyQuotes.ts',
103101
'app/components/Views/SocialLeaderboard/utils/formatters.ts',
104-
'app/components/Views/UnifiedTransactionsView/useUnifiedTxActions.test.ts',
105102
'app/components/Views/confirmations/components/gas/max-base-fee-input/max-base-fee-input.tsx',
106103
'app/components/Views/confirmations/components/gas/priority-fee-input/priority-fee-input.tsx',
107104
'app/components/Views/confirmations/components/info/typed-sign-v3v4/simulation/components/native-value-display/native-value-display.tsx',
@@ -133,10 +130,9 @@ const utilNumberImportBurndownFiles = [
133130
// `../number/bigint` (or `./number/bigint` from `app/util/`).
134131
'app/util/confirm-tx.js',
135132
'app/util/conversions.js',
136-
'app/util/confirmation/gas.ts',
133+
137134
'app/util/confirmation/transactions.ts',
138135
'app/util/custom-gas/index.js',
139-
'app/util/networks/index.js',
140136
'app/util/transactions/index.js',
141137
'app/util/transactions/index.test.ts',
142138
];

.github/workflows/ci-namespace-shadow.yml

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,26 @@ name: CI (Namespace shadow)
88
# token-exchange, and dispatch steps use continue-on-error so this job's own
99
# check always concludes success even when the dispatch cannot run.
1010
#
11-
# Shadow runs are iOS-only: ci.yml skips Android and Linux-only jobs when
12-
# runner_provider is namespace (see the BITRISE/NAMESPACE-SHADOW markers there),
13-
# mirroring the Bitrise shadow benchmark scope.
11+
# A shadow run is composed of two independently-flagged pipelines inside ci.yml
12+
# (see the BITRISE/NAMESPACE-SHADOW markers there):
13+
# - iOS pipeline (build + E2E smoke on macOS runners): runs when
14+
# NAMESPACE_SHADOW_AUTO_DISPATCH=true
15+
# - Linux pipeline (lint/unit/scripts/etc. on namespace-profile-metamask-ci-linux,
16+
# plus Android build + E2E smoke on namespace-profile-metamask-android-build):
17+
# runs when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
18+
# Appium Android stays skipped on shadow runs (pinned to Cirrus until Namespace parity).
19+
# With both flags false, a manual dispatch yields a near-empty ci.yml run (only
20+
# provider-agnostic scaffolding like get_requirements / fingerprint / timings).
1421
#
1522
# Authentication: Token Exchange Service (same pattern as triage-forwarder.yml —
1623
# OIDC → POST /api/exchange/token). Prerequisites:
1724
# - Actions variable TOKEN_EXCHANGE_URL (already used elsewhere, e.g. triage-forwarder).
1825
# - Rego policy mm-metamask-mobile-namespace-shadow-ci-token-exchange in
1926
# token-exchange-service (matches the OIDC `workflow_ref` claim).
2027
#
21-
# Auto-dispatch gate: set repo Actions variable NAMESPACE_SHADOW_AUTO_DISPATCH=true
22-
# to dispatch on PR/push. Default (unset/false) = manual workflow_dispatch only.
28+
# Auto-dispatch gate: PR/push dispatch happens when NAMESPACE_SHADOW_AUTO_DISPATCH=true
29+
# or NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true (repo Actions variables). Default
30+
# (both unset/false) = manual workflow_dispatch only.
2331
on:
2432
pull_request:
2533
types: [opened, synchronize, reopened, ready_for_review]
@@ -44,10 +52,11 @@ jobs:
4452
name: "[shadow] Dispatch"
4553
runs-on: ubuntu-latest
4654
# Fork PRs use head.repo != github.repository — skip (no shadow, no token exchange).
47-
# PR/push auto-dispatch requires NAMESPACE_SHADOW_AUTO_DISPATCH=true; workflow_dispatch always runs.
55+
# PR/push auto-dispatch requires NAMESPACE_SHADOW_AUTO_DISPATCH=true (iOS pipeline)
56+
# or NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true (Linux pipeline); workflow_dispatch always runs.
4857
if: >-
4958
${{
50-
(github.event_name == 'workflow_dispatch' || vars.NAMESPACE_SHADOW_AUTO_DISPATCH == 'true') &&
59+
(github.event_name == 'workflow_dispatch' || vars.NAMESPACE_SHADOW_AUTO_DISPATCH == 'true' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') &&
5160
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
5261
}}
5362
steps:

.github/workflows/ci.yml

Lines changed: 34 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ jobs:
6262
check-diff:
6363
name: Check diff
6464
runs-on: ${{ inputs.runner_provider == 'namespace' && 'namespace-profile-metamask-ios-build' || 'macos-latest' }}
65-
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' }}
65+
# NAMESPACE-SHADOW: macOS job — runs on Namespace shadow only when NAMESPACE_SHADOW_AUTO_DISPATCH=true (iOS pipeline)
66+
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_AUTO_DISPATCH == 'true') }}
6667
needs:
6768
- get_requirements
6869
steps:
@@ -170,8 +171,8 @@ jobs:
170171
dedupe:
171172
name: Dedupe
172173
runs-on: ${{ inputs.runner_provider == 'namespace' && 'namespace-profile-metamask-ci-linux' || 'ubuntu-latest' }}
173-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
174-
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && inputs.runner_provider != 'namespace' }}
174+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
175+
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') }}
175176
needs:
176177
- get_requirements
177178
steps:
@@ -219,8 +220,8 @@ jobs:
219220
git-safe-dependencies:
220221
name: Run `@lavamoat/git-safe-dependencies`
221222
runs-on: ${{ inputs.runner_provider == 'namespace' && 'namespace-profile-metamask-ci-linux' || 'ubuntu-latest' }}
222-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
223-
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && inputs.runner_provider != 'namespace' }}
223+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
224+
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') }}
224225
needs:
225226
- get_requirements
226227
steps:
@@ -261,8 +262,8 @@ jobs:
261262
scripts:
262263
name: Run `${{ matrix.scripts }}`
263264
runs-on: ${{ inputs.runner_provider == 'namespace' && 'namespace-profile-metamask-ci-linux' || 'ubuntu-latest' }}
264-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
265-
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && inputs.runner_provider != 'namespace' }}
265+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
266+
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') }}
266267
needs:
267268
- get_requirements
268269
strategy:
@@ -307,22 +308,6 @@ jobs:
307308
command: yarn install --immutable
308309
- name: Clean state and following up dependencies installation
309310
run: yarn setup:github-ci --node
310-
- name: Restore ESLint cache
311-
if: ${{ matrix.scripts == 'lint' }}
312-
uses: actions/cache@v4
313-
with:
314-
path: .eslintcache
315-
key: eslintcache-${{ runner.os }}-${{ github.run_id }}
316-
restore-keys: |
317-
eslintcache-${{ runner.os }}-
318-
- name: Restore TypeScript incremental build cache
319-
if: ${{ matrix.scripts == 'lint:tsc' }}
320-
uses: actions/cache@v4
321-
with:
322-
path: tsconfig.tsbuildinfo
323-
key: tsbuildinfo-${{ runner.os }}-${{ github.run_id }}
324-
restore-keys: |
325-
tsbuildinfo-${{ runner.os }}-
326311
- run: yarn ${{ matrix['scripts'] }}
327312
- name: Require clean working directory
328313
shell: bash
@@ -337,8 +322,8 @@ jobs:
337322
js-bundle-size-check:
338323
name: JS bundle size check
339324
runs-on: ${{ inputs.runner_provider == 'namespace' && 'namespace-profile-metamask-ci-linux' || 'ubuntu-latest' }}
340-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
341-
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && inputs.runner_provider != 'namespace' }}
325+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
326+
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') }}
342327
needs:
343328
- get_requirements
344329
permissions:
@@ -650,8 +635,8 @@ jobs:
650635
check-workflows:
651636
name: Check workflows
652637
runs-on: ${{ inputs.runner_provider == 'namespace' && 'namespace-profile-metamask-ci-linux' || 'ubuntu-latest' }}
653-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
654-
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && inputs.runner_provider != 'namespace' }}
638+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
639+
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') }}
655640
needs:
656641
- get_requirements
657642
steps:
@@ -672,8 +657,8 @@ jobs:
672657
prepare-ci-js-deps:
673658
name: Prepare CI JS dependencies
674659
runs-on: ${{ inputs.runner_provider == 'namespace' && 'namespace-profile-metamask-ci-linux' || 'ubuntu-latest' }}
675-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
676-
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && inputs.runner_provider != 'namespace' }}
660+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
661+
if: ${{ needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') }}
677662
needs:
678663
- get_requirements
679664
steps:
@@ -699,8 +684,8 @@ jobs:
699684
unit-tests:
700685
name: Unit tests (${{ matrix.shard }})
701686
runs-on: ${{ inputs.runner_provider == 'namespace' && 'namespace-profile-metamask-ci-linux' || 'ubuntu-latest' }}
702-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
703-
if: ${{ !cancelled() && needs.get_requirements.result == 'success' && needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && inputs.runner_provider != 'namespace' }}
687+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
688+
if: ${{ !cancelled() && needs.get_requirements.result == 'success' && needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') }}
704689
needs:
705690
- get_requirements
706691
- prepare-ci-js-deps
@@ -780,7 +765,8 @@ jobs:
780765
- integration-tests
781766
# Wait for integration shards so coverage can merge into Sonar, but still run
782767
# when integration fails — missing integration artifacts are tolerated below.
783-
if: ${{ always() && github.event_name != 'merge_group' && inputs.runner_provider != 'bitrise' && inputs.runner_provider != 'namespace' && !cancelled() && needs.prepare-ci-js-deps.result == 'success' && needs.unit-tests.result == 'success' && needs.component-view-tests.result == 'success' }}
768+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
769+
if: ${{ always() && github.event_name != 'merge_group' && inputs.runner_provider != 'bitrise' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') && !cancelled() && needs.prepare-ci-js-deps.result == 'success' && needs.unit-tests.result == 'success' && needs.component-view-tests.result == 'success' }}
784770
steps:
785771
- uses: namespacelabs/nscloud-checkout-action@938f5d2d403d6224d9a0c0dc559b1dae09c2ede4 # v8.1.1
786772
if: ${{ inputs.runner_provider == 'namespace' }}
@@ -1048,8 +1034,8 @@ jobs:
10481034
component-view-tests:
10491035
name: Component view tests
10501036
runs-on: ${{ inputs.runner_provider == 'namespace' && 'namespace-profile-metamask-ci-linux' || 'ubuntu-latest' }}
1051-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
1052-
if: ${{ !cancelled() && needs.get_requirements.result == 'success' && needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && inputs.runner_provider != 'namespace' }}
1037+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
1038+
if: ${{ !cancelled() && needs.get_requirements.result == 'success' && needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') }}
10531039
needs:
10541040
- get_requirements
10551041
- prepare-ci-js-deps
@@ -1115,7 +1101,8 @@ jobs:
11151101
integration-tests:
11161102
name: Integration tests
11171103
runs-on: ${{ inputs.runner_provider == 'namespace' && 'namespace-profile-metamask-ci-linux' || 'ubuntu-latest' }}
1118-
if: ${{ !cancelled() && needs.get_requirements.result == 'success' && needs.get_requirements.outputs.skip_everything != 'true' }}
1104+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
1105+
if: ${{ !cancelled() && needs.get_requirements.result == 'success' && needs.get_requirements.outputs.skip_everything != 'true' && inputs.runner_provider != 'bitrise' && (inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') }}
11191106
needs:
11201107
- get_requirements
11211108
- prepare-ci-js-deps
@@ -1264,11 +1251,11 @@ jobs:
12641251

12651252
build-android-apks:
12661253
name: 'Build Android APKs'
1267-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
1254+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux-runner job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
12681255
if: >-
12691256
${{
12701257
inputs.runner_provider != 'bitrise' &&
1271-
inputs.runner_provider != 'namespace' &&
1258+
(inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') &&
12721259
!cancelled() &&
12731260
needs.get_requirements.outputs.android_e2e_needed == 'true' &&
12741261
!(fromJSON(needs.smart-e2e-selection.outputs.ai_confidence || '0') >= 85 && needs.smart-e2e-selection.outputs.ai_e2e_test_tags == '[]')
@@ -1342,25 +1329,19 @@ jobs:
13421329

13431330
e2e-smoke-tests-android:
13441331
name: 'Android E2E Smoke Tests'
1345-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
1332+
# BITRISE/NAMESPACE-SHADOW: skipped on Bitrise shadow (iOS-only, INFRA-3679); Namespace shadow runs this Linux-runner job only when NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH=true
13461333
if: >-
13471334
${{
13481335
inputs.runner_provider != 'bitrise' &&
1349-
inputs.runner_provider != 'namespace' &&
1336+
(inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_LINUX_AUTO_DISPATCH == 'true') &&
13501337
!cancelled() &&
13511338
needs.build-android-apks.result == 'success' &&
13521339
(needs.prepare-e2e-timings.result == 'success' || needs.prepare-e2e-timings.result == 'failure' || needs.prepare-e2e-timings.result == 'skipped')
13531340
}}
13541341
permissions:
13551342
contents: read
13561343
id-token: write
1357-
needs:
1358-
[
1359-
get_requirements,
1360-
build-android-apks,
1361-
smart-e2e-selection,
1362-
prepare-e2e-timings,
1363-
]
1344+
needs: [get_requirements, build-android-apks, smart-e2e-selection, prepare-e2e-timings]
13641345
uses: ./.github/workflows/run-e2e-smoke-tests-android.yml
13651346
with:
13661347
changed_files: ${{ needs.get_requirements.outputs.changed_files }}
@@ -1374,9 +1355,12 @@ jobs:
13741355

13751356
build-ios-apps:
13761357
name: 'Build iOS Apps'
1358+
# NAMESPACE-SHADOW: iOS pipeline runs on Namespace shadow only when NAMESPACE_SHADOW_AUTO_DISPATCH=true
1359+
# (downstream iOS jobs cascade-skip via needs when this is skipped)
13771360
if: >-
13781361
${{
13791362
!cancelled() &&
1363+
(inputs.runner_provider != 'namespace' || vars.NAMESPACE_SHADOW_AUTO_DISPATCH == 'true') &&
13801364
needs.get_requirements.outputs.ios_e2e_needed == 'true' &&
13811365
!(fromJSON(needs.smart-e2e-selection.outputs.ai_confidence || '0') >= 85 && needs.smart-e2e-selection.outputs.ai_e2e_test_tags == '[]')
13821366
}}
@@ -1414,13 +1398,7 @@ jobs:
14141398
permissions:
14151399
contents: read
14161400
id-token: write
1417-
needs:
1418-
[
1419-
get_requirements,
1420-
ios-tests-ready,
1421-
smart-e2e-selection,
1422-
prepare-e2e-timings,
1423-
]
1401+
needs: [get_requirements, ios-tests-ready, smart-e2e-selection, prepare-e2e-timings]
14241402
uses: ./.github/workflows/run-e2e-smoke-tests-ios.yml
14251403
with:
14261404
changed_files: ${{ needs.get_requirements.outputs.changed_files }}
@@ -1434,7 +1412,9 @@ jobs:
14341412

14351413
appium-smoke-tests-android:
14361414
name: 'Appium Smoke Tests (Android)'
1437-
# BITRISE/NAMESPACE-SHADOW: skip for iOS-only shadow benchmark (INFRA-3679) — revert to enable full pipeline
1415+
# BITRISE/NAMESPACE-SHADOW: always skipped on shadow runs. Appium Android is pinned to
1416+
# runner_provider=current (Cirrus) below until Namespace parity is ready, and it cannot
1417+
# download namespace-built APKs (they live in Namespace's artifact store, not GitHub's).
14381418
if: >-
14391419
${{
14401420
inputs.runner_provider != 'bitrise' &&

0 commit comments

Comments
 (0)