Status: built (STA-1623), waiting for the first live run. The real drivers are written against the
documented API shapes and have not called Apple, Google, Expo, Sentry or Infisical yet. Decision:
0482.
The commands
Exit code 0: every step done or planned. 3: an owner step is pending or a step is blocked. 2: a usage error.
Releasing is the existing build and deploy, with the mobile part alone:
eas driver’s submit to TestFlight and the Play internal track. An Android build waits
while Play has no release yet (the first upload is by hand) and the deploy prints held: with the reason; iOS still
goes. The listing, screenshots, review details and App Review submission are ADR 0480’s store steps.
The steps
One-time setup (owner, for every product)
- Root kit (ADR 0480, STA-1591):
ASC_API_KEY_ID,ASC_API_ISSUER_ID,ASC_API_PRIVATE_KEY,GOOGLE_PLAY_SERVICE_ACCOUNT_JSON,EXPO_TOKENinto Infisicalprod:/ci/storethrough~/Secrets-inboxandpnpm secrets:import. - Google workload identity federation: in Figentra’s Google Cloud organisation, a workload identity pool and
provider that trust GitHub OIDC from each product repository’s
productionenvironment, and a folder for product projects. Grant the pool’s principal Project Creator, Firebase Admin, Service Account Admin, Service Account Key Admin and Service Usage Admin on that folder. The job’s auth step exports the token asGOOGLE_OAUTH_ACCESS_TOKEN; the folder is the organisation variableGOOGLE_PROJECT_FOLDER(folders/<number>). - Google Analytics: add the same principal as Editor on Figentra’s Analytics account.
- Sentry:
SENTRY_AUTH_TOKENin/ciwithproject:write, and amobileteam in thefigentraorganisation. - Infisical: the job’s OIDC login exports
INFISICAL_TOKEN; the identity may write underprod:/ci/store.
Owner steps per app
- App Store Connect app record: Apps › + › New App with the platform, name, primary language, bundle id and SKU the step prints.
- Play app and first upload: create the app with the name and default language the step prints; fill App content
(privacy policy, app access with the review demo account, ads, content rating, target audience, Data safety from
pnpm store build); upload the first production.aabfrom EAS to Internal testing; keep Play App Signing on; invite the root kit’s service account with release rights. The step is done once Play shows a release.
Academorix
The offline plan of academorix’srunway.yaml today (traced from the code, not run: this Mac runs no tests). Its ids
are the live store ids, so identity keeps them.
Before its first
--check: set mobile.academorix.eas.owner: academorix (owner answer, STA-1623 Q4) and
google.analyticsAccount, in the product’s go-live change.