publish-pr-ota needed fingerprint-native, so the bundle build - the slow
half - did not start until the fingerprint had finished, even though the
bundle does not depend on the fingerprint verdict. Only the decision to
publish it does.
Split the job in two: build-pr-ota builds and assembles the bundle with no
dependency on the fingerprint (so it runs alongside it) and hands it over
as a short-lived artifact, and publish-pr-ota keeps the fingerprint gate
and does just the denis publish. A dirty fingerprint now discards an
already-built bundle instead of saving the build, which costs a runner but
takes the fingerprint's wall clock off the critical path of every
fingerprint-clean PR.
Since the build job already has the EAS CLI set up, it also reads the
native build numbers and exposes them (along with the release version) as
job outputs, so the publish job needs neither EXPO_TOKEN nor node_modules
and can invoke denisPublish.sh directly rather than through the
use-build-number wrapper. denisPublish.sh gains SKIP_BUNDLE_ASSEMBLY for
that case, where bundleTempDir arrives as an artifact and ./dist is not
present; without it the script assembles the directory as before, so the
main-branch deploy is unaffected.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UL83tcSq9MvwBkUGJGRyWV
* use xlarge runner for macos build
* try and fix yarn cache
* update actions/cache for pods step
* use expo github action main rather than v8
* update all actions to the same
* use yarn cache where missing
* use custom github action for fingerprinting
* update pr workflow
* update names of workflows
* make a native change (testing)
* adjust the action
* Revert "make a native change (testing)"
This reverts commit 8db9835733.
* update bundle-deploy script
* test a prod build
* crazy depth
* manually set
* use prod default
* force prod
* revert test changes
* save cache after deploy
* revert testing
* simplify list logic further
more simplification
simplify by removing `isEmpty`
use `isFetchingNextPage` everywhere for clarity
change `isFetching` to `isFetchingNextPage` for clarity
remove some useless `useMemo`s
move `renderItem` and `keyExtractor` out of component
* clean bundle size check
* update deploy
* adjust
* adjust
* one test
* try now
* test it
* done
try that again 9
try that again 8
try that again 7
try that again 6
try that again 5
try that again 4
try that again 3
try that again 2
try that again
merge base 3
merge base 2
merge base
use latest main commit rather than tag
webpack diff analyzer
use cache v4
use cache
again...
blegh
blegh
try cache again
cache
try again
one more adjutment
adjust
okay again maybe
maybe now?
maybe now
oops again
oops
add diff comments
add open analyzer script
add webpack analyzer