Skip to Content
Engineering11 Documentation 🔥
FrontendCapabilitiesBuild & Deployment

Build & Deployment

CI/CD infrastructure across all platforms — automated builds, environment management, app store publishing, and cross-repo dependency cascading. You get deployment pipelines from day one.

Platform Overview

FlutterAngularReact (Web)React Native
CI/CD ToolGitHub ActionsGoogle Cloud Build + GitHub ActionsGitHub ActionsGitHub Actions (EAS Build)
Deployment TargetTestFlight + Google PlayFirebase HostingGCP Cloud RunTestFlight + Google Play
Environments5 (dev, ci, qa, demo, prod)6 (dev, ci, qa, demo, stage, prod)4 (dev, ci, qa, prod)4 (dev, ci, qa, prod)
Package PublishingGit refs (Melos)GitHub Packages (npm)GitHub Packages (npm)GitHub Packages (npm)
Preview Deploys—Per-branch Firebase previewsPR-based Storybook previews—
OTA Updates———Expo Updates

Flutter

GitHub Actions with workflow_dispatch triggers accepting branch, environment, and platform toggles.

StageWhat’s Automated
SetupBranch/environment resolution, Flutter version from FVM, env var loading
iOSCodemagic CLI signing, auto-increment build number (latest TestFlight + 1), flutter build ipa, publish to TestFlight
AndroidKeystore decoding from secrets, auto-increment build number (latest Play Store + 1), flutter build appbundle, publish to Google Play (internal track)
NotificationsRich Slack notification with per-platform status and store links

5-environment flavor system with full isolation — each environment gets separate Firebase projects, env files, Android flavors, iOS build schemes, and app bundle IDs. A script-based dependency switcher toggles ~22 SDK package references between local paths and git branch refs.

Angular

Google Cloud Build for app deployment + GitHub Actions for SDK publishing and automation.

SDK pipeline (sdks-angular):

WorkflowWhat It Does
Release PleaseAutomated semver from conventional commits, per-package release PRs
PublishNx parallel builds → publish @engineering11/*-web to GitHub Packages
Auto-Updaterepository_dispatch triggers downstream repo update PRs
AI Reviewe11automaton/pr-agent for automated PR review

App pipeline (your product app):

Cloud Build on N1_HIGHCPU_32 machines:

  1. Install dependencies (private registry from GCP Secret Manager)
  2. Build shared-lib
  3. Version stamp and build all 3 apps in parallel
  4. Upload source maps to Rollbar
  5. Deploy to Firebase Hosting

6 environments with compile-time environment.ts file replacements per build config. Branch-to-environment mapping: develop → CI, qa/* → QA, release/* → Stage, production/* → Production.

Cross-repo cascade: When SDKs publish, multi-repo-update-orchestrator dispatches events to downstream repos, which auto-create PRs with updated SDK versions.

React (Web)

GitHub Actions with 11 workflows covering build, test, lint, deploy, and publish.

WorkflowTriggerWhat It Does
apps-dev.ymlPush to mainAuto-deploy dev environment
cloud-run-deploy.ymlCalled by app workflowsDocker → GCP Artifact Registry → Cloud Run
storybook-deploy.ymlPR / push to mainFirebase Hosting (preview channels for PRs)
test.ymlPR / pushVitest + Firestore emulator
release.ymlPush to mainChangesets → version → publish to GitHub Packages
lint-and-format.ymlPR / pushESLint + Prettier checks

Build tooling: tsup for CJS + ESM output, Turborepo for dependency-aware task graph with caching, TypeScript strict mode with ES2022 target.

React Native

EAS Build via GitHub Actions with managed build profiles.

ProfileOutputTarget
devAPKLocal testing
ciAPKCI validation
qaAPKQA testing
prodAAB + IPAGoogle Play + App Store (auto-submit)

OTA Updates: Expo Updates configured with appVersion runtime versioning — ship bug fixes without app store review.

Environments: APP_ENV build arg with per-environment Firebase configs in configs/{dev,qa,ci,prod}/.

Package Publishing

All TypeScript/JavaScript platforms publish Foundation packages to GitHub Packages (npm.pkg.github.com/engineering11/):

  • Angular: Release Please for automated semver + changelog from conventional commits
  • React/RN: Changesets for version management and publishing
  • Post-publish: Triggers update orchestrator to auto-create PRs in downstream repos

Flutter uses git ref-based dependencies managed by Melos, switching between local paths and branch refs per environment.

Next Steps

Last updated on