| … | … | @@ -0,0 +1,167 @@ | |
| 113 | + | eas-version: latest | |
| 114 | + | token: ${{ secrets.EXPO_PRODUCTION_TOKEN }} | |
| 115 | + | packager: npm | |
| 116 | + | ||
🟠 High workflows/mobile-android-store-build-check.yml:116
eas env:pull production fails on a fresh runner with PLUGIN_NOT_FOUND because it evaluates apps/mobile/app.config.ts before the workspace plugins are installed. The EAS action installs only the CLI, and the local builder cannot install dependencies until after EAS has evaluated the config; install the mobile workspace dependencies before invoking EAS.
Also found in 1 other location(s)
.github/workflows/mobile-eas-production.yml:508
The new Android job never installs the workspace dependencies before invoking EAS. On a fresh runner,
eas build --localevaluatesapp.config.tsin the checkout before starting the local builder (EAS CLIsrc/build/runBuildAndSubmit.tsandsrc/project/expoConfig.ts), and that config lists plugins such asexpo-assetandexpo-font. Expo'sresolvePluginForModulethrowsPLUGIN_NOT_FOUNDwhen these are not installed (https://github.com/expo/expo/blob/sdk-55/packages/@expo/config-plugins/src/utils/plugin-resolver.ts). The install inside the local builder therefore cannot bootstrap this job: all Android store builds fail before compilation. Install the mobile workspace dependencies in this job before running EAS, as the production job does.
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
| 1 | In file @.github/workflows/mobile-android-store-build-check.yml around line 116: |
| 2 | |
| 3 | `eas env:pull production` fails on a fresh runner with `PLUGIN_NOT_FOUND` because it evaluates `apps/mobile/app.config.ts` before the workspace plugins are installed. The EAS action installs only the CLI, and the local builder cannot install dependencies until after EAS has evaluated the config; install the mobile workspace dependencies before invoking EAS. |
| 4 | |
| 5 | Also found in 1 other location(s): |
| 6 | - .github/workflows/mobile-eas-production.yml:508 -- The new Android job never installs the workspace dependencies before invoking EAS. On a fresh runner, `eas build --local` evaluates `app.config.ts` in the checkout before starting the local builder (EAS CLI `src/build/runBuildAndSubmit.ts` and `src/project/expoConfig.ts`), and that config lists plugins such as `expo-asset` and `expo-font`. Expo's `resolvePluginForModule` throws `PLUGIN_NOT_FOUND` when these are not installed (https://github.com/expo/expo/blob/sdk-55/packages/@expo/config-plugins/src/utils/plugin-resolver.ts). The install inside the local builder therefore cannot bootstrap this job: all Android store builds fail before compilation. Install the mobile workspace dependencies in this job before running EAS, as the production job does. |
Not applicable: this was the temporary check workflow, which has been removed from the PR. That file, like the real android/ios jobs, already ran a filtered pnpm install before eas env:pull. The PR body explains why the install is required.
Confirmed for the real jobs at b9aad78. In mobile-eas-production.yml, both jobs run the filtered pnpm install --frozen-lockfile --prefer-offline --filter=@t3tools/mobile... before any EAS command. Android: install (L572), then eas env:pull (L591), then eas build --local (L607). iOS: install (L735), then eas env:pull (L755), then eas build --local (L760). The install keeps scripts, because the fingerprint check hashes native assets that a postinstall downloads. The green check runs used this same order.
| … | … | @@ -386,3 +430,161 @@ jobs: | |
| 449 | + | env: | |
| 450 | + | APP_VARIANT: production | |
| 451 | + | NODE_OPTIONS: --max-old-space-size=8192 | |
| 452 | + | EXPO_TOKEN: ${{ secrets.EXPO_PRODUCTION_TOKEN }} | |
🟢 Low workflows/mobile-eas-production.yml:452
Android store builds finish without uploading their embedded bundle source maps, leaving production crash stacks minified. The local EAS build cannot access EAS secret-visibility variables, and this job does not pass MOBILE_SOURCEMAPS_R2 to the build-success upload hook; expose the GitHub secret in this job's environment so the hook can upload the maps.
No longer relevant as of a573a7d03ae4e68be71d8135d2dd5e9520d8371a
Confirmed: the check run logged MOBILE_SOURCEMAPS_R2 is not set from the eas-build-on-success hook. Fixed in a573a7d by passing the GitHub secret to the Build step only, in both the android and ios jobs.