Skip to content

Harden EAS pipeline, env isolation, and secret handling#17

Merged
pythonsst merged 11 commits intomainfrom
release/eas-play-pipeline
Mar 22, 2026
Merged

Harden EAS pipeline, env isolation, and secret handling#17
pythonsst merged 11 commits intomainfrom
release/eas-play-pipeline

Conversation

@pythonsst
Copy link
Owner

Summary

  • Align EAS build/submit/update flows across development, staging, and production with explicit profile-to-env mapping and safer artifact selection for submits.
  • Add OTA update support end-to-end for dynamic config and native Android/iOS settings, including Hermes alignment and interactive update messaging.
  • Harden credential handling by removing tracked sensitive artifacts, adding pre-commit secret scanning, and introducing profile-scoped local env overrides with build-time secret injection support.

Test plan

  • Run yarn lint
  • Run yarn test
  • Run yarn eas:version:get / yarn eas:version:check
  • Validate modified iOS plist files with plutil -lint
  • Verify yarn eas:update:staging publishes successfully
  • Verify pre-commit secret_scan hook blocks sensitive staged additions

Made with Cursor

- development: internal + draft (Internal testing)
- staging: alpha + draft (Closed testing / Alpha)
- production: production + completed (Production)
- docs/EAS.md: map EAS profiles to Play Console

Made-with: Cursor
Submit profile staging now targets Play beta track; docs updated.

Made-with: Cursor
Source-of-truth table for development/staging/production; link from EAS.md.

Made-with: Cursor
- Android: three Gradle flavors only; drop extra variants; wire env files and Fastlane lanes to the same names.
- iOS: rename Xcode targets, Info plists, and shared schemes to ReactNativeIgniteKit/ReactNativeCICD development|staging|production; update Podfile and project; refresh CocoaPods lockfile.
- EAS, package.json scripts, CI workflow, and docs (README, EAS, Play mapping) describe the unified profile and scheme names.

Made-with: Cursor
This makes Metro startup/logging reliable in local terminals and CI while aligning Yarn/EAS tooling to avoid blocked installs and hook setup regressions.

Made-with: Cursor
Ensure staging, development, and production always load their matching .env files across CLI and Android Studio tasks, and submit Android artifacts by build profile to avoid cross-profile track uploads.

Made-with: Cursor
Wire Expo Updates settings into app.config and native Android/iOS files so EAS update runs end-to-end, and align iOS Hermes config with Expo export expectations.

Made-with: Cursor
Replace legacy Yarn 1 and deprecated Android deploy steps with stable lint/test/version checks, and correct README quick-start commands to match available scripts.

Made-with: Cursor
… secret scanning

Stop tracking sensitive keystore/config files, strip signing placeholders from tracked env files, and add a staged-change secret scanner to block accidental credential commits.

Made-with: Cursor
Remove Node and Yarn tooling variables from runtime .env files so client-shipped configuration only contains app-level values.

Made-with: Cursor
Add .env.<profile>.local override support and a pre-build EAS hook that injects profile-scoped map keys from secrets, while keeping tracked env files on non-sensitive placeholders.

Made-with: Cursor
@pythonsst pythonsst merged commit 1430843 into main Mar 22, 2026
1 check passed
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.

1 participant