You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
echo "::error::Could not identify the run just dispatched for $workflow."
287
+
return 1
288
+
fi
265
289
echo "Dispatched $workflow as run $run_id, waiting for it to complete..."
266
290
while [ "$(gh run view "$run_id" --repo "$GITHUB_REPOSITORY" --json status --jq '.status')" != "completed" ]; do
267
291
sleep 15
@@ -272,17 +296,45 @@ jobs:
272
296
[ "$conclusion" = "success" ]
273
297
}
274
298
299
+
# mcp/miner's own isolated pack/smoke-test step resolves @loopover/engine from the real npm
300
+
# registry in a bare temp dir (no local workspace symlink there), so it can transiently fail
301
+
# with ETARGET for a few tens of seconds after engine's OWN publish reports success --
302
+
# npm's registry is CDN-backed, not instantly consistent across every edge node (confirmed
303
+
# live: dispatching mcp and miner back-to-back right after engine's publish job completed,
304
+
# mcp's smoke-test hit an edge node that had already propagated and succeeded; miner's hit
305
+
# one that hadn't and failed with the exact same ETARGET this whole job exists to fix,
306
+
# despite both being dispatched at the same moment against the same already-published
307
+
# engine version). Retrying after a short wait resolves it once propagation catches up --
308
+
# this is NOT the same failure class as a genuine test regression, which would fail
309
+
# identically on every retry.
310
+
dispatch_and_wait_with_retry() {
311
+
local workflow="$1" max_attempts=3 attempt=1
312
+
while [ "$attempt" -le "$max_attempts" ]; do
313
+
if dispatch_and_wait "$workflow"; then
314
+
return 0
315
+
fi
316
+
echo "$workflow attempt $attempt/$max_attempts did not succeed -- likely npm registry propagation lag for a dependency that just published; retrying shortly."
317
+
sleep 30
318
+
attempt=$((attempt + 1))
319
+
done
320
+
return 1
321
+
}
322
+
275
323
engine_ok=true
276
324
if needs_publish packages/loopover-engine @loopover/engine; then
0 commit comments