Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 26 additions & 4 deletions .github/workflows/release-node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,32 @@ jobs:
run: |
set -euo pipefail
mkdir -p bin-staging
gh release download "$RELEASE_TAG" \
--repo AI-agent-assembly/agent-assembly \
--pattern "aasm-*.tar.gz" \
--dir bin-staging
# Cross-repo race: release-node fires on the same tag-push event as
# agent-assembly's Release workflow, in parallel. agent-assembly takes
# ~10 min to build + publish the binaries we depend on. Retry up to
# 20 times Γ— 60s = 20 min ceiling waiting for the Release object.
# AAASM-2328.
MAX_ATTEMPTS=20
for attempt in $(seq 1 $MAX_ATTEMPTS); do
if gh release download "$RELEASE_TAG" \
--repo AI-agent-assembly/agent-assembly \
--pattern "aasm-*.tar.gz" \
--dir bin-staging 2>&1 | tee /tmp/gh-rd.log; then
echo "βœ“ Downloaded on attempt ${attempt}/${MAX_ATTEMPTS}"
break
fi
# Distinguish 'release not found' (race β€” retry) from other errors (fail-fast)
if ! grep -q 'release not found' /tmp/gh-rd.log; then
echo "::error::gh release download failed with non-race error β€” aborting retry"
exit 1
fi
if [ "$attempt" -eq "$MAX_ATTEMPTS" ]; then
echo "::error::Release v${RELEASE_TAG} never appeared after $((MAX_ATTEMPTS * 60))s β€” agent-assembly Release pipeline likely failed"
exit 1
fi
echo "Attempt ${attempt}/${MAX_ATTEMPTS}: release not yet published, sleeping 60s..."
sleep 60
done
ls -la bin-staging/

- name: Stage runtime binaries into runtime-* sub-packages
Expand Down
Loading