Skip to content

CI runs no iOS unit tests: test-ios-rntester skips them unless run-unit-tests is true, and no job sets it #59596

Open

Description

@YevheniiKotyrlo

Description

React Native's CI builds RNTester for iOS in several jobs of test-all.yml and runs its iOS unit tests in none of them. .github/actions/test-ios-rntester runs yarn test-ios only when run-unit-tests is 'true' (L145-L148), its default is false, and no caller sets it to true: test_ios_rntester passes use-frameworks, use-prebuilds and flavor only, and test_ios_rntester_dynamic_frameworks passes false beside a comment that the tests "are already run in the test_ios_rntester job" (L139). So a change that breaks an iOS unit test passes CI.

The React-RCTFabric pod's own Tests test spec (React-RCTFabric.podspec) is built by no job either: no Podfile asks for it with :testspecs.

Steps to reproduce

  1. Open any main Test All run, for example 40680271235 on dfed2d9.

  2. In test_ios_rntester (Debug, false), the action's unit-test steps are skipped (its log is under Stacktrace or Logs).

  3. On main at c12d0b3, git grep -n "run-unit-tests" -- .github finds the action's input and one caller, test_ios_rntester_dynamic_frameworks, passing false; git grep -n testspecs -- packages/rn-tester/Podfile packages/react-native/scripts/cocoapods finds nothing.

Expected: one job runs yarn test-ios, as the dynamic-frameworks job's comment says test_ios_rntester does, and builds the React-RCTFabric test spec.
Actual: no job runs the iOS unit tests; test_ios_rntester's unit-test steps are skipped (step 2, its log below).

React Native Version

main (c12d0b3)

Affected Platforms

Runtime - iOS

Output of npx @react-native-community/cli info

Not applicable: this is React Native's own CI, .github/workflows/test-all.yml and .github/actions/test-ios-rntester.

Stacktrace or Logs

Job test_ios_rntester (Debug, false) of run 40680271235:

2026-10-28T17:28:46.2357330Z ##[start-action display=Prepare IOS Tests;id=__self.__self_5]
2026-10-28T17:28:46.2373050Z ##[end-action id=__self.__self_5;outcome=skipped;conclusion=skipped;duration_ms=0]
2026-10-28T23:25:50.1026300Z ##[start-action display=Run Tests: iOS Unit and Integration Tests;id=__self.__run_7]
2026-10-28T23:25:50.1034880Z ##[end-action id=__self.__run_7;outcome=skipped;conclusion=skipped;duration_ms=0]

MANDATORY Reproducer

React Native's own workflow on main:

test_ios_rntester:
runs-on: macos-15-large
needs: [prebuild_apple_dependencies, prebuild_react_native_core]
if: ${{ needs.prebuild_react_native_core.result == 'success' }}
continue-on-error: true
strategy:
fail-fast: false
matrix:
flavor: [Debug, Release]
frameworks: [false, true]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Run it
uses: ./.github/actions/test-ios-rntester
with:
use-frameworks: ${{ matrix.frameworks }}
# Consume the prebuilt artifacts in the dynamic-frameworks cells too:
# prebuilt + use_frameworks is the config of the 2026-07-03
# SocketRocket dual-copy regression, previously covered by no lane
# (source-built dynamic frameworks stay covered by
# test_ios_rntester_dynamic_frameworks).
use-prebuilds: true
flavor: ${{ matrix.flavor }}
and
- name: 'Run Tests: iOS Unit and Integration Tests'
if: ${{ inputs.run-unit-tests == 'true' }}
shell: bash
run: yarn test-ios
. test_ios_rntester has passed run-unit-tests: 'false' since #45133, and the comment that says it runs the tests came with #53848.

Screenshots and Videos

No response

Activity

  1. react-native-bot commented on Oct 29, 2026

    @react-native-bot
    Collaborator

    Warning

    Missing reproducer: We could not detect a reproducible example in your issue report. Reproducers are mandatory and we can accept only one of those as a valid reproducer:


    You can read more about about it on our website: How to report a bug.

  2. YevheniiKotyrlo commented on Oct 29, 2026

    @YevheniiKotyrlo
    ContributorAuthor

    The body now follows the bug form: this is CI configuration, so the reproducer is the workflow itself on main, test-all.yml's test_ios_rntester job and the action's gated yarn test-ios step, with the skipped steps from run 40680271235 under Stacktrace or Logs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs: AttentionIssues where the author has responded to feedback.Needs: ReproThis issue could be improved with a clear list of steps to reproduce the issue.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions