@krx3d/tizentube2 1.30.740 → 1.30.760

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -984,16 +984,38 @@ jobs:
984
984
  grep -aoE "${MAJOR}\.[0-9]+\.[0-9]+" "$1" | sort -u | tr '\n' ' ' || true
985
985
  }
986
986
 
987
+ # The pinned path is retried, which the first version of this step
988
+ # did not do — and that cost a release. A publish of 1.30.740 failed
989
+ # here on a single curl: (22) 503. jsDelivr had to fetch a version
990
+ # seconds old from npm, its own metadata API was answering 502 for
991
+ # that version at the same time, and minutes later every URL was 200
992
+ # with the alias already on the new version. Nothing was wrong with
993
+ # the publish; one transient answer failed the build and took the
994
+ # .wgt release with it.
995
+ #
996
+ # A wrong version inside the file is still an immediate failure: an
997
+ # immutable path cannot go stale, so that one cannot be transient.
998
+ # Only "not there yet" is retried.
987
999
  echo "== the path every TV loads: ${PINNED}"
988
- if ! curl -fsSL -H 'Cache-Control: no-cache' "$PINNED" -o /tmp/cdn_pinned.js; then
989
- echo "::error::The CDN will not serve ${PINNED} at all, so the publish did not land."
990
- exit 1
991
- fi
992
- if ! grep -aq "$VER" /tmp/cdn_pinned.js; then
993
- echo "::error::${PINNED} exists but the bundle in it says $(served_version /tmp/cdn_pinned.js), not ${VER}. An immutable path cannot go stale, so this is a broken publish rather than a cache."
1000
+ PINNED_OK=
1001
+ for i in $(seq 1 10); do
1002
+ CODE=$(curl -s -o /tmp/cdn_pinned.js -w '%{http_code}' -H 'Cache-Control: no-cache' "$PINNED" || echo 000)
1003
+ if [ "$CODE" = "200" ]; then
1004
+ if grep -aq "$VER" /tmp/cdn_pinned.js; then
1005
+ PINNED_OK=yes
1006
+ echo "attempt ${i}: the pinned path serves ${VER} — which is what injector.js injects."
1007
+ break
1008
+ fi
1009
+ echo "::error::${PINNED} returned 200 but the bundle in it says $(served_version /tmp/cdn_pinned.js), not ${VER}. An immutable path cannot go stale, so this is a broken publish rather than a cache."
1010
+ exit 1
1011
+ fi
1012
+ echo "attempt ${i}: HTTP ${CODE} — jsDelivr has not pulled this version from npm yet"
1013
+ sleep 20
1014
+ done
1015
+ if [ -z "$PINNED_OK" ]; then
1016
+ echo "::error::${PINNED} never became readable, after ten attempts over three minutes. npm has the version (checked earlier in this run), so either jsDelivr is having an outage — check https://www.jsdelivrstatus.com — or it cannot read this package. Re-running this workflow is safe and is the first thing to try."
994
1017
  exit 1
995
1018
  fi
996
- echo "the pinned path serves ${VER} — which is what injector.js injects."
997
1019
 
998
1020
  # Then the alias, which is allowed to lag.
999
1021
  echo "== the fallback alias: ${ALIAS}"