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.
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:
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:
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:
Happy to help put this back together if useful.