mirror of
https://github.com/react/react-native.git
synced 2026-09-28 13:23:09 +08:00
Summary: Pull Request resolved: https://github.com/react/react-native/pull/58631 Fantom's CI retries use Jest's `--onlyFailures` mode. Jest 29's default sequencer caches suite-level runtime errors as passing because they contain no failed test cases, so retries select no suites. See https://github.com/react/react-native/actions/runs/35630015753/job/106440689782?pr=58624 of an example of this, where retries didn't actually do anything Add a Fantom-specific sequencer that marks runtime-error suites as failed only for cache bookkeeping. This preserves the original test reporting while ensuring targeted retries rerun the crashed suite. Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D121063351 fbshipit-source-id: e24737cc247ea0e11aa04dac74d557a3f41f9db6
44 lines
1.3 KiB
Bash
Executable File
44 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
set -e
|
|
|
|
|
|
if [[ -f "BUCK" && -z "$FANTOM_FORCE_OSS_BUILD" ]]; then
|
|
export JS_DIR='..'
|
|
else
|
|
if [[ ! -f "private/react-native-fantom/build/tester/fantom_tester" ]]; then
|
|
yarn workspace @react-native/fantom build
|
|
fi
|
|
export FANTOM_FORCE_OSS_BUILD=1
|
|
fi
|
|
|
|
# The Fantom Jest process hosts a single shared Metro server. Each test
|
|
# triggers a fresh Metro bundle build whose dependency graph (transformed
|
|
# modules, source maps, inverse-deps, file-watcher subscription) lives in
|
|
# memory until the per-test DELETE evicts it. With the maxWorkers cap in
|
|
# jest.config.js (~16 in-flight bundles at peak), 16 GB gives ~40% heap
|
|
# headroom over the observed steady state of ~6 GB.
|
|
export NODE_OPTIONS='--max-old-space-size=16384'
|
|
|
|
# Parse arguments to extract custom flags
|
|
ARGS=()
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--benchmarks) export FANTOM_RUN_BENCHMARKS=1 ;;
|
|
*) ARGS+=("$arg") ;;
|
|
esac
|
|
done
|
|
|
|
if [[ -n "$FANTOM_RUN_BENCHMARKS" ]]; then
|
|
ARGS+=("--runInBand")
|
|
fi
|
|
|
|
yarn jest \
|
|
--config private/react-native-fantom/config/jest.config.js \
|
|
--testSequencer '<rootDir>/private/react-native-fantom/config/FantomTestSequencer.js' \
|
|
"${ARGS[@]}"
|