Skip to content

Commit a9437f3

Browse files
ci(mobile): fix EAS build and fingerprint workflows
- Track asset and script changes in mobile release workflows - Keep production builds attached to serialized runs - Use EAS fingerprint commands and fingerprint-hash matching
1 parent c52919e commit a9437f3

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

‎.github/workflows/mobile-eas-production.yml‎

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ on:
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 \

‎.github/workflows/mobile-fingerprint-check.yml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ on:
1818
- packages/client-runtime/**
1919
- packages/contracts/**
2020
- packages/shared/**
21+
- assets/**
22+
- scripts/**
2123
- patches/**
2224
- pnpm-lock.yaml
2325
- pnpm-workspace.yaml

0 commit comments

Comments
 (0)