Skip to content

Commit d73ad33

Browse files
chore: make simslip param driven
1 parent ea55e4c commit d73ad33

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

.github/workflows/ios.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ env:
77
DEVICE_MODEL: 'iPhone 17'
88
IOS_VERSION: '26.2'
99
USE_CCACHE: 1
10+
# simslim slimming is temporarily disabled while we confirm whether it is what
11+
# stops the app from requesting its Metro bundle. Set to 'true' to re-enable.
12+
SIMSLIM_ENABLED: 'false'
1013

1114
jobs:
1215
ios:
@@ -48,6 +51,7 @@ jobs:
4851
run: yarn pod
4952

5053
- name: "Optimize simulator with simslim"
54+
if: env.SIMSLIM_ENABLED == 'true'
5155
run: |
5256
if ! command -v jq &> /dev/null; then
5357
brew install jq
@@ -106,9 +110,43 @@ jobs:
106110
sleep 10
107111
echo "Ready to run tests"
108112
113+
# Diagnostics for "the app did not request its Metro bundle" failures. The
114+
# harness only reports that no bundle request arrived, not why, so record the
115+
# simulator-side state it depends on before the tests run.
116+
- name: Simulator diagnostics
117+
run: |
118+
echo "--- booted devices (more than one makes 'booted' ambiguous) ---"
119+
xcrun simctl list devices | grep -i booted || echo "(none)"
120+
121+
echo "--- app install state on ${SIMULATOR_UDID} ---"
122+
xcrun simctl get_app_container "$SIMULATOR_UDID" mendixnative.example 2>&1 || \
123+
echo "::warning::app container not found on target simulator"
124+
125+
echo "--- simslim status (skipped when slimming is disabled) ---"
126+
if [ "${SIMSLIM_ENABLED}" = "true" ] && command -v simslim &> /dev/null; then
127+
simslim status "$SIMULATOR_UDID" || true
128+
else
129+
echo "(slimming disabled)"
130+
fi
131+
109132
# Run tests
110133
- name: Run Harness E2E tests
111134
working-directory: example
112135
run: |
136+
# An earlier run exceeded Node's default ~2GB old-space limit while the
137+
# harness retried launches. Raising the ceiling keeps a retry loop from
138+
# presenting as an OOM instead of the real timeout.
113139
export NODE_OPTIONS="--max-old-space-size=6144"
140+
# Harness debug logging names the resolved simulator, the RCT_jsLocation
141+
# override, and each Metro request — what identifies a missing bundle request.
142+
export DEBUG="react-native-harness:*"
114143
yarn harness:ios
144+
145+
# Capture the app's own logs when the run fails: if the app launched but never
146+
# asked Metro for a bundle, the reason shows up on the simulator side.
147+
- name: Collect app logs on failure
148+
if: failure()
149+
run: |
150+
xcrun simctl spawn "$SIMULATOR_UDID" log show --last 25m --style compact \
151+
--predicate 'process == "MendixNativeExample"' 2>&1 | tail -300 || \
152+
echo "(no app logs available)"

0 commit comments

Comments
 (0)