Publish one bundle version to both OTA origins, not two (#11291)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -204,6 +204,18 @@ jobs:
|
|||||||
SENTRY_DIST=${{ steps.env.outputs.bundle-identifier }}
|
SENTRY_DIST=${{ steps.env.outputs.bundle-identifier }}
|
||||||
pnpm export
|
pnpm export
|
||||||
|
|
||||||
|
# Pin ONE bundle version for both publishes below. Each script used to call
|
||||||
|
# `date +%s` itself, so the same bytes reached denis and ota1 under versions
|
||||||
|
# seconds apart (observed: 1785102575 vs 1785102614). The version is part of
|
||||||
|
# the asset URL path, so each origin then served a manifest referencing a
|
||||||
|
# path only it had -- meaning a manifest fetched from one origin and assets
|
||||||
|
# fetched from the other 404. Both scripts fall back to `date +%s` when this
|
||||||
|
# is unset, so single-publisher callers are unaffected.
|
||||||
|
- name: 🔢 Pin bundle version
|
||||||
|
if: ${{ !steps.fingerprint.outputs.includes-changes &&
|
||||||
|
!steps.version.outputs.version-changed }}
|
||||||
|
run: echo "BUNDLE_VERSION=$(date +%s)" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
# denis on EKS has been the sole origin for updates.bsky.app since
|
# denis on EKS has been the sole origin for updates.bsky.app since
|
||||||
# 2026-07-26, so it publishes FIRST: it is the path that actually serves
|
# 2026-07-26, so it publishes FIRST: it is the path that actually serves
|
||||||
# clients. The legacy ota1 upload runs after it, and exists only so that
|
# clients. The legacy ota1 upload runs after it, and exists only so that
|
||||||
|
|||||||
@@ -14,7 +14,11 @@ if [ -z "$RUNTIME_VERSION" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
cd bundleTempDir || exit
|
cd bundleTempDir || exit
|
||||||
BUNDLE_VERSION=$(date +%s)
|
|
||||||
|
# Shared with denisPublish.sh when both run in one job -- see the note there.
|
||||||
|
# Both origins must receive the same bundle version for the same bytes, because
|
||||||
|
# the version is part of the asset URL path.
|
||||||
|
BUNDLE_VERSION="${BUNDLE_VERSION:-$(date +%s)}"
|
||||||
|
|
||||||
# This MUST address ota1's own origin hostname, never updates.bsky.app.
|
# This MUST address ota1's own origin hostname, never updates.bsky.app.
|
||||||
#
|
#
|
||||||
|
|||||||
+10
-1
@@ -19,7 +19,16 @@ if [ -z "$RUNTIME_VERSION" ]; then
|
|||||||
RUNTIME_VERSION=$(cat package.json | jq '.version' -r)
|
RUNTIME_VERSION=$(cat package.json | jq '.version' -r)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BUNDLE_VERSION=$(date +%s)
|
# Accept a caller-supplied bundle version so that a dual-write publishes the SAME
|
||||||
|
# version to every origin. When this script and bundleUpdate.sh each called
|
||||||
|
# `date +%s` independently they produced versions seconds apart for identical
|
||||||
|
# bytes -- observed 1785102575 (denis) vs 1785102614 (ota1) for one commit. Since
|
||||||
|
# the version is part of the asset URL path, the two origins then served
|
||||||
|
# manifests pointing at paths only one of them had, so the manifest and its
|
||||||
|
# assets had to come from the same origin or the fetch 404s. Falling back to
|
||||||
|
# `date +%s` keeps standalone callers (PR previews, `pnpm make-deploy-bundle`)
|
||||||
|
# working unchanged.
|
||||||
|
BUNDLE_VERSION="${BUNDLE_VERSION:-$(date +%s)}"
|
||||||
DENIS_CDN_DOMAIN="${DENIS_CDN_DOMAIN:-updates.bsky.app}"
|
DENIS_CDN_DOMAIN="${DENIS_CDN_DOMAIN:-updates.bsky.app}"
|
||||||
DENIS_S3_BUCKET="${DENIS_S3_BUCKET:-bsky-denis-ota-prod}"
|
DENIS_S3_BUCKET="${DENIS_S3_BUCKET:-bsky-denis-ota-prod}"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user