Native nightly builds are redundant now that changes ship over the air,
so the nightly workflow no longer builds anything. It now only posts the
list of commits since the previous post to the QA team's Slack channel,
and posts nothing when there are no new commits. The commit marker
artifact keeps its name so the first run continues from the last nightly.
The OTA workflow's fallback native iOS build is assigned to the "QA Team"
TestFlight group so testers still get native builds when one is needed.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0157o74F6wX3aTghhc7DLbzd
The nightly native build is redundant now that changes ship over the air:
the only time testers need a new native build is when the OTA workflow
detects a native fingerprint or version change and falls back to building.
Move the useful parts of the nightly into that fallback path instead:
- Assign the fallback iOS build to the "QA Team" TestFlight group
- Generate a changelog of commits since the last native testflight build,
tracked via a "testflight-native-build-commit" artifact that only
advances after both native builds succeed
- Pass the changelog as the TestFlight "What to Test" notes (new
`changelog` input on build-submit-ios.yml for workflow_call)
- Post the iOS and Android builds with the changelog to Slack
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0157o74F6wX3aTghhc7DLbzd
Sets the "What to test" field in TestFlight to distinguish between
TestFlight and Production builds.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Configure concurrency groups so only one iOS build and one Android build
can run at a time across all workflows. This prevents manual builds from
conflicting with automatic builds triggered by fingerprint changes.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* use xlarge runner for macos build
* try and fix yarn cache
* update actions/cache for pods step
* use expo github action main rather than v8
* update all actions to the same
* use yarn cache where missing
* Clean up env files
* Use new env in Sentry setup file
* Use new env in Bitdrift setup file
* Use new env in chat proxy header
* Prefix Bitdrift key with EXPO_PUBLIC
* Deprecate SENTRY_RELEASE since we use package.json now
* Use existing EXPO_PUBLIC_BUNDLE_IDENTIFIER short commit has as Sentry dist value
* Fix missing bundle identifier for Render deploys
* Deprecate SENTRY_DIST in favor of EXPO_PUBLIC_BUNDLE_IDENTIFIER
* Prefix SENTRY_DSN with EXPO_PUBLIC to match others
* Remove debugging field
* Replace NODE_ENV in places where its safe
* Self review
* Properly patch Sentry package
* Echo variables to .env in Dockerfile instead of passing to shell script
* Make sure EXPO_PUBLIC_ENV is set for web container builds
* Update IS_TESTFLIGHT to include testflight-android
* Slice bundle hash to match other platforms, needed for render.com deployments
* [APP-1331] Migrate `app-info` to new env (#8703)
* Move env files into directory with platform specific files
* Migrate usages of app-info to new env
* Fix bad import
* Update BUNDLE_DATE format comment
* Trim RENDER_GIT_COMMIT to first 7 to match --short sha
* Clarify build process env vars and ensure they are explicitly passed in
* Revert Sentry patch as a result of prev commit
* Update webpack Sentry dist value based on prev commits
* Add PACKAGE_VERSION and replace in statsig to fix conflict
* Fix render substitution syntax
* Remove invalid syntax
* Remove unnecessary testflight check
* Just use long commit hash
* Slice full hash for display in app
* Fix missing space in ios workflow
* Pass in sentry CLI env vars, align matching values
* Align on RELEASE_VERSION
* Add new env setup to missed OTA spot
* Update webpack to use same SENTRY_RELEASE var
* Just fallback to package version for Render deploys
* Remove TF check for BUNDLE_DATE
* Set EXPO_PUBLIC_ENV for bundle update
* Consistent naming "Env"
* Add comment
* Use RELEASE_VERSION instead of package.json
* Update PR comment CI