Skip to content

FCE-3330: restore mobile EAS build gate (revert mobile deletion from #555)#558

Merged
roznawsk merged 2 commits into
mainfrom
fce-3330-restore-mobile-eas
Jun 30, 2026
Merged

FCE-3330: restore mobile EAS build gate (revert mobile deletion from #555)#558
roznawsk merged 2 commits into
mainfrom
fce-3330-restore-mobile-eas

Conversation

@roznawsk

Copy link
Copy Markdown
Member

Why

#555 deleted examples/mobile-client/fishjam-chat and .github/workflows/mobile_eas_build.yaml.

That workflow was not an orphan like the web deploy workflows — it's the pre-release mobile build gate: labelling a PR eas build triggers a production EAS build of the fishjam-chat app, which links the SDK via @fishjam-cloud/react-native-client: workspace:*. That proves unreleased local SDK changes still compile + autolink into a shippable native app, then submits iOS to TestFlight and comments the download links.

fishjam-chat was the only mobile app in the repo, so deleting it removed the only build target and broke the gate. Nothing replaced it — the migrated fishjam-cloud/examples repo has no EAS CI and consumes the published SDK, so it can't gate local changes.

Changes

Restores, unchanged, from before the deletion commit:

  • .github/workflows/mobile_eas_build.yaml
  • examples/mobile-client/fishjam-chat/ (37 files, incl. eas.json)
  • yarn.lock workspace resolution for the app

The web deploy deletions from #555 (fishjam-chat.yaml → nginx, livestreaming-example.yaml → GitHub Pages) stay removed — those were genuinely orphaned (web sources gone since #504).

The mobile_eas_build workflow is the pre-release mobile build gate
(label a PR 'eas build' -> production EAS build of fishjam-chat linked
to the SDK via workspace:*, submit to TestFlight). fishjam-chat was its
only build target, so deleting it broke the gate. Restore both; the web
deploy workflows stay removed.
@roznawsk roznawsk self-assigned this Jun 30, 2026
@linear

linear Bot commented Jun 30, 2026

Copy link
Copy Markdown

FCE-3330

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Restores the previously-deleted React Native “fishjam-chat” example app and the GitHub Actions EAS build workflow so PRs labeled eas build can again gate unreleased SDK changes via a real native build target.

Changes:

  • Restores .github/workflows/mobile_eas_build.yaml to trigger EAS production builds on PR label.
  • Re-adds examples/mobile-client/fishjam-chat/ (Expo app + config/assets) that links the SDK via workspace:*.
  • Updates workspace lockfile to include the restored app (per PR description).

Reviewed changes

Copilot reviewed 33 out of 39 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
.github/workflows/mobile_eas_build.yaml Reintroduces PR-label-triggered EAS build + TestFlight submit + PR comment links.
examples/mobile-client/fishjam-chat/.env.example Documents required Expo public env vars for the example.
examples/mobile-client/fishjam-chat/.eslintrc.js Adds app-local ESLint configuration for the example.
examples/mobile-client/fishjam-chat/.gitignore Ignores Expo artifacts and generated native folders for the example.
examples/mobile-client/fishjam-chat/README.md Restores setup/development instructions for the example app.
examples/mobile-client/fishjam-chat/app.json Restores Expo app config, plugins, permissions, and EAS project metadata.
examples/mobile-client/fishjam-chat/babel.config.js Restores Babel config and @ module aliasing for the app.
examples/mobile-client/fishjam-chat/eas.json Restores EAS build/submit profiles used by the workflow.
examples/mobile-client/fishjam-chat/index.js Expo router entrypoint for monorepo setup.
examples/mobile-client/fishjam-chat/package.json Restores app dependencies and scripts (workspace-linked SDK).
examples/mobile-client/fishjam-chat/prettier.config.js Restores example-local prettier config delegating to shared config.
examples/mobile-client/fishjam-chat/tsconfig.json Restores strict TS config + @/* path mapping.
examples/mobile-client/fishjam-chat/utils/Colors.ts Adds shared color constants used by UI components/screens.
examples/mobile-client/fishjam-chat/utils/fishjamIdStore.ts Adds simple callback store to update Fishjam ID at runtime.
examples/mobile-client/fishjam-chat/hooks/useMediaPermissions.ts Adds camera/microphone permission management hook.
examples/mobile-client/fishjam-chat/components/Button.tsx Restores reusable button component.
examples/mobile-client/fishjam-chat/components/DismissKeyboard.tsx Adds keyboard-dismiss wrapper for screens with inputs.
examples/mobile-client/fishjam-chat/components/InCallButton.tsx Restores in-call icon button component.
examples/mobile-client/fishjam-chat/components/NoCameraView.tsx Restores “no camera” placeholder tile component.
examples/mobile-client/fishjam-chat/components/TextInput.tsx Restores styled text input component.
examples/mobile-client/fishjam-chat/components/Typo.tsx Restores typography wrapper + shared text styles.
examples/mobile-client/fishjam-chat/components/VideosGrid.tsx Restores peer video grid rendering + quality controls.
examples/mobile-client/fishjam-chat/components/index.ts Restores barrel exports for components.
examples/mobile-client/fishjam-chat/app/_layout.tsx Restores FishjamProvider root + router stack configuration.
examples/mobile-client/fishjam-chat/app/index.tsx Restores default redirect into tab layout.
examples/mobile-client/fishjam-chat/app/(tabs)/_layout.tsx Restores bottom tab navigation layout.
examples/mobile-client/fishjam-chat/app/(tabs)/livestream.tsx Restores Livestream entry screen (viewer/streamer/screen-share routes).
examples/mobile-client/fishjam-chat/app/(tabs)/room.tsx Restores VideoRoom entry screen + staging/prod selection.
examples/mobile-client/fishjam-chat/app/livestream/viewer.tsx Restores livestream viewer screen wiring to SDK hooks.
examples/mobile-client/fishjam-chat/app/livestream/streamer.tsx Restores livestream publishing screen wiring to SDK hooks.
examples/mobile-client/fishjam-chat/app/livestream/screen-sharing.tsx Restores screen-sharing publishing flow wiring to SDK hooks.
examples/mobile-client/fishjam-chat/app/room/[roomName].tsx Restores in-room call UI (CallKit/foreground service/screen-share toggles).
examples/mobile-client/fishjam-chat/app/room/preview.tsx Restores pre-join preview flow (permissions + device init + join).
examples/mobile-client/fishjam-chat/assets/images/adaptive-icon.png Restores app asset.
examples/mobile-client/fishjam-chat/assets/images/favicon.png Restores app asset.
examples/mobile-client/fishjam-chat/assets/images/fishjam-logo.png Restores app asset.
examples/mobile-client/fishjam-chat/assets/images/icon.png Restores app asset.
examples/mobile-client/fishjam-chat/assets/images/splash.png Restores app asset.
yarn.lock Restores workspace resolution for the re-added app (per PR description).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread examples/mobile-client/fishjam-chat/package.json
Comment thread examples/mobile-client/fishjam-chat/app/livestream/viewer.tsx
Comment thread examples/mobile-client/fishjam-chat/app/livestream/streamer.tsx
Comment thread examples/mobile-client/fishjam-chat/app/(tabs)/room.tsx
Remove dead reset-project script from fishjam-chat example (referenced
./scripts/reset-project.js, which does not exist).
@roznawsk roznawsk merged commit 9b4b404 into main Jun 30, 2026
2 checks passed
@roznawsk roznawsk deleted the fce-3330-restore-mobile-eas branch June 30, 2026 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants