5353 - packages/client-runtime/**
5454 - packages/contracts/**
5555 - packages/shared/**
56+ - assets/**
57+ - scripts/**
5658 - patches/**
5759 - pnpm-lock.yaml
5860 - pnpm-workspace.yaml
@@ -154,9 +156,11 @@ jobs:
154156 --non-interactive
155157
156158 # No --status filter on build:list: an in-queue/in-progress build must
157- # count as existing, or every merge during the ~20 min build window
158- # would cut a duplicate. The flip side: after an errored build, retry
159- # via workflow_dispatch mode=build — pushes won't re-trigger it.
159+ # count as existing, or every merge during the build window would cut a
160+ # duplicate. Builds started here stay attached to this serialized run so
161+ # the queued run for a later merge cannot overtake them and lose its OTA.
162+ # After an errored build, retry via workflow_dispatch mode=build — pushes
163+ # won't re-trigger it until the app version changes.
160164 - name : Ensure store builds exist for the current app version
161165 if : steps.expo-token.outputs.present == 'true' && github.event_name == 'push'
162166 working-directory : apps/mobile
@@ -171,7 +175,7 @@ jobs:
171175 continue
172176 fi
173177 echo "$platform: latest production build is $latest, app.config.ts says $version — building"
174- eas build --platform "$platform" --profile production --auto-submit --non-interactive --no-wait
178+ eas build --platform "$platform" --profile production --auto-submit --non-interactive
175179 echo ":building_construction: $platform: cut production build for $version (auto-submitted)" >> "$GITHUB_STEP_SUMMARY"
176180 done
177181
@@ -183,8 +187,8 @@ jobs:
183187 run : |
184188 message="$(git log -1 --pretty=%s | head -c 120) ($(git rev-parse --short=9 HEAD))"
185189 for platform in ios android; do
186- hash="$(npx expo-updates fingerprint:generate --platform "$platform" | jq -r '.hash')"
187- matching="$(eas build:list --platform "$platform" --buildProfile production --status finished --runtimeVersion "$hash" --limit 1 --json --non-interactive | jq 'length')"
190+ hash="$(eas fingerprint:generate --platform "$platform" --environment production --json --non-interactive | jq -r '.hash')"
191+ matching="$(eas build:list --platform "$platform" --build-profile production --status finished --fingerprint-hash "$hash" --limit 1 --json --non-interactive | jq 'length')"
188192 if [ "$matching" -gt 0 ]; then
189193 eas update \
190194 --channel production \
0 commit comments