Skip to content

master has no build/test CI at all #5081

Description

@mziolkowskii

Summary

The default branch (master) currently has no CI beyond docs build and issue/discussion bots. There is no lint, no unit tests, no library build, no Android build, and no iOS build - including no build of the example app on any platform. A build-breaking regression (bad Podfile change, invalid native code, broken JS) can be merged to master today with zero automated feedback.

What's actually running on master

.github/workflows/ on master contains only:

  • deploy-docs.yml
  • test-docs-build.yml
  • stale.yml
  • triage-discussion.yml
  • validate-issue.yml

None of these touch packages/react-native-video, example/, Android, or iOS.

How it got this way

Until PR #4622 ("docs: upgrade documentation", merged 2025-07-24), there was a single .github/workflows/ci.yml (157 lines) running:

  • lint (yarn lint / yarn typecheck)
  • test (yarn test --coverage)
  • build-library (yarn prepare)
  • build-android (yarn turbo run build:android)
  • build-ios (CocoaPods install + yarn turbo run build:ios against example/ios)

PR #4622's stated purpose was a documentation overhaul, but its diff also deletes ci.yml entirely, with nothing added in its place - deploy-docs.yml/test-docs-build.yml only cover the docs/ site. This looks like an unintended side effect of that PR rather than a deliberate CI removal, and it's gone unnoticed for over a year.

Note on support/6.x.x

The legacy support/6.x.x maintenance branch still has full CI (build-ios.yml, build-android.yml, check-ios.yml, check-js.yml, check-clang.yml), which is why those workflow IDs still show as "active" in the Actions tab - PRs based on that branch (e.g. #5076) carry the files with them. But that branch targets the old examples/bare/... layout and is unrelated to current master development. For reference, even there build-ios.yml runs on unpinned runs-on: macos-latest with no Xcode version matrix, so there's no existing pattern to copy for pinning specific Xcode versions - that'd need to be added too.

Why this matters

The exact class of regression fixed in #5080 (fmt pod needing C++17 for Xcode 26 in the example app) - or any native build break - could land on master and stay invisible until someone happens to open the example project locally. There's currently no automated signal, not even for the JS library build.

Suggested fix

Restore a master CI workflow (based on the pre-#4622 ci.yml, adapted to the current repo layout) that runs at minimum:

  • lint/typecheck
  • unit tests
  • library build
  • example app build for Android and iOS - ideally with an explicit/pinned Xcode version (or a small matrix) instead of unpinned macos-latest, so an Xcode bump is exercised deliberately rather than silently by GitHub's runner image rolling forward

Happy to help put this back together if useful.

Activity

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

Metadata

Metadata

Assignees

Labels

AcceptedIssue is confirmed and accepted by maintainers teamV7

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions