@@ -528,28 +528,43 @@ jobs:
528528 BEFORE_ID=$(gh run list \
529529 --repo docker/inference-engine-llama.cpp \
530530 --workflow release-cli-dd.yml \
531- --limit 1 --json databaseId --jq '.[0].databaseId // 0')
531+ --limit 1 --json databaseId --jq '.[0].databaseId // 0' 2>/dev/null || echo "")
532+ case "$BEFORE_ID" in
533+ ''|*[!0-9]*)
534+ echo "::error::Could not read the pre-dispatch run ID for release-cli-dd.yml"
535+ exit 1
536+ ;;
537+ esac
532538
533539 gh workflow run release-cli-dd.yml \
534540 --repo docker/inference-engine-llama.cpp \
535541 -f model-cli-ref="$RELEASE_TAG" \
536542 -f tag="v$VERSION"
537543
544+ # Poll for the run WE just triggered: the first run whose ID exceeds
545+ # BEFORE_ID. Tolerate transient `gh` failures mid-poll (empty or
546+ # non-numeric CANDIDATE) by skipping the iteration — a flaky query
547+ # must not abort the release on `integer expression expected`.
538548 RUN_ID=""
549+ LAST_SEEN=""
539550 for _ in $(seq 1 30); do
540551 sleep 3
541552 CANDIDATE=$(gh run list \
542553 --repo docker/inference-engine-llama.cpp \
543554 --workflow release-cli-dd.yml \
544- --limit 1 --json databaseId --jq '.[0].databaseId // 0')
555+ --limit 1 --json databaseId --jq '.[0].databaseId // 0' 2>/dev/null || echo "")
556+ case "$CANDIDATE" in
557+ ''|*[!0-9]*) continue ;;
558+ esac
559+ LAST_SEEN="$CANDIDATE"
545560 if [ "$CANDIDATE" -gt "$BEFORE_ID" ]; then
546561 RUN_ID="$CANDIDATE"
547562 break
548563 fi
549564 done
550565
551566 if [ -z "$RUN_ID" ]; then
552- echo "::error::Failed to determine Desktop CLI release run ID"
567+ echo "::error::Failed to determine Desktop CLI release run ID after ~90s (before=$BEFORE_ID, last seen=${LAST_SEEN:-none}) "
553568 exit 1
554569 fi
555570
@@ -596,27 +611,42 @@ jobs:
596611 BEFORE_ID=$(gh run list \
597612 --repo docker/packaging \
598613 --workflow release-model.yml \
599- --limit 1 --json databaseId --jq '.[0].databaseId // 0')
614+ --limit 1 --json databaseId --jq '.[0].databaseId // 0' 2>/dev/null || echo "")
615+ case "$BEFORE_ID" in
616+ ''|*[!0-9]*)
617+ echo "::error::Could not read the pre-dispatch run ID for release-model.yml"
618+ exit 1
619+ ;;
620+ esac
600621
601622 gh workflow run release-model.yml \
602623 --repo docker/packaging \
603624 -f ref="$RELEASE_TAG"
604625
626+ # Poll for the run WE just triggered: the first run whose ID exceeds
627+ # BEFORE_ID. Tolerate transient `gh` failures mid-poll (empty or
628+ # non-numeric CANDIDATE) by skipping the iteration — a flaky query
629+ # must not abort the release on `integer expression expected`.
605630 RUN_ID=""
631+ LAST_SEEN=""
606632 for _ in $(seq 1 30); do
607633 sleep 3
608634 CANDIDATE=$(gh run list \
609635 --repo docker/packaging \
610636 --workflow release-model.yml \
611- --limit 1 --json databaseId --jq '.[0].databaseId // 0')
637+ --limit 1 --json databaseId --jq '.[0].databaseId // 0' 2>/dev/null || echo "")
638+ case "$CANDIDATE" in
639+ ''|*[!0-9]*) continue ;;
640+ esac
641+ LAST_SEEN="$CANDIDATE"
612642 if [ "$CANDIDATE" -gt "$BEFORE_ID" ]; then
613643 RUN_ID="$CANDIDATE"
614644 break
615645 fi
616646 done
617647
618648 if [ -z "$RUN_ID" ]; then
619- echo "::error::Failed to determine packaging workflow run ID"
649+ echo "::error::Failed to determine packaging workflow run ID after ~90s (before=$BEFORE_ID, last seen=${LAST_SEEN:-none}) "
620650 exit 1
621651 fi
622652
0 commit comments