Skip to content

Commit 79a54ab

Browse files
committed
Run the FlatList maintainVisibleContentPosition E2E flows in Release only on iOS
The 24 FlatList maintainVisibleContentPosition flows are half of the RNTester Maestro suite (~37 minutes per iOS job). Android already runs them against the release build only. On iOS about 88% of their failed attempts over Oct 27-29 were in Debug (133 vs 17). Rename their `android-release-only` tag to `release-only` and exclude it from the Debug job on both platforms.
1 parent ae06dad commit 79a54ab

27 files changed

Lines changed: 34 additions & 36 deletions

‎.github/workflow-scripts/__tests__/maestro-android-test.js‎

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,22 +47,16 @@ describe('Maestro Android runner', () => {
4747
});
4848

4949
it('excludes flows with matching tags', () => {
50-
const releaseOnlyFlow = path.join(
51-
temporaryDirectory,
52-
'android-release-only.yml',
53-
);
50+
const releaseOnlyFlow = path.join(temporaryDirectory, 'release-only.yml');
5451
const regularFlow = path.join(temporaryDirectory, 'regular.yml');
5552
fs.writeFileSync(
5653
releaseOnlyFlow,
57-
'appId: x\ntags:\n - android-release-only\n---\n- launchApp\n',
54+
'appId: x\ntags:\n - release-only\n---\n- launchApp\n',
5855
);
5956
fs.writeFileSync(regularFlow, 'appId: x\n---\n- launchApp\n');
6057

6158
expect(
62-
filterFlowsByTags(
63-
[releaseOnlyFlow, regularFlow],
64-
['android-release-only'],
65-
),
59+
filterFlowsByTags([releaseOnlyFlow, regularFlow], ['release-only']),
6660
).toEqual([regularFlow]);
6761
});
6862

‎.github/workflows/e2e-android-rntester.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
# These timing-sensitive flows remain covered by the release APK.
7575
# Running the debug ARM64 APK through native translation can delay
7676
# React commits long enough for Maestro to miss taps and assertions.
77-
exclude-tags: ${{ matrix.flavor == 'debug' && 'android-release-only' || '' }}
77+
exclude-tags: ${{ matrix.flavor == 'debug' && 'release-only' || '' }}
7878
- name: Store per-flow test state
7979
if: always()
8080
uses: ./.github/actions/upload-artifact

‎.github/workflows/e2e-ios-rntester.yml‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,11 @@ jobs:
7777
device-model: iPhone-17-Pro
7878
device-os: iOS-26-2
7979
test-state-path: /tmp/maestro-ios-state/results.json
80-
exclude-tags: android-only
80+
# The `release-only` flows (FlatList maintainVisibleContentPosition)
81+
# are half of the suite and test scroll behavior that doesn't depend
82+
# on the build flavor. Nearly 90% of their failed attempts were in
83+
# Debug, so like on Android they only run against Release.
84+
exclude-tags: ${{ matrix.flavor == 'Debug' && 'android-only,release-only' || 'android-only' }}
8185
- name: Store per-flow test state
8286
if: always()
8387
uses: ./.github/actions/upload-artifact

‎packages/rn-tester/.maestro/flatlist-append-maintainvisible.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Appending items should NOT affect scroll offset (delta ~0)
33
appId: ${APP_ID}
44
tags:
5-
- android-release-only
5+
- release-only
66
---
77
- launchApp
88
# Change to portrait

‎packages/rn-tester/.maestro/flatlist-complex-mutations-maintainvisible.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Tests prepend + append + delete in sequence
33
appId: ${APP_ID}
44
tags:
5-
- android-release-only
5+
- release-only
66
---
77
- launchApp
88
- setOrientation: portrait

‎packages/rn-tester/.maestro/flatlist-delete-anchor-maintainvisible.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# When the anchor item (first visible) is deleted, MVCP should select a new anchor
33
appId: ${APP_ID}
44
tags:
5-
- android-release-only
5+
- release-only
66
---
77
- launchApp
88
- setOrientation: portrait

‎packages/rn-tester/.maestro/flatlist-delete-middle-maintainvisible.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# When items are deleted from the middle, MVCP should adjust scroll offset
33
appId: ${APP_ID}
44
tags:
5-
- android-release-only
5+
- release-only
66
---
77
- launchApp
88
- setOrientation: portrait

‎packages/rn-tester/.maestro/flatlist-empty-list-maintainvisible.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# correction.
55
appId: ${APP_ID}
66
tags:
7-
- android-release-only
7+
- release-only
88
---
99
- launchApp
1010
# Change to portrait

‎packages/rn-tester/.maestro/flatlist-first-prepend-maintainvisible.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Single prepend with fixed-height items: delta should be ~44px (40px height + 4px margin)
33
appId: ${APP_ID}
44
tags:
5-
- android-release-only
5+
- release-only
66
---
77
- launchApp
88
# Change to portrait

‎packages/rn-tester/.maestro/flatlist-horizontal-add50-reset-maintainvisible.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# reset returns offset to 0.
44
appId: ${APP_ID}
55
tags:
6-
- android-release-only
6+
- release-only
77
---
88
- launchApp
99
- setOrientation: portrait

0 commit comments

Comments
 (0)