@@ -441,52 +441,26 @@ jobs:
441441 permissions :
442442 contents : read
443443 steps :
444- - name : Trigger release-cli-dd workflow
445- id : trigger
444+ - name : Trigger release-cli-dd workflow and wait for completion
446445 env :
447446 GH_TOKEN : ${{ secrets.CLI_RELEASE_PAT }}
448447 RELEASE_TAG : ${{ needs.prepare.outputs.release_tag }}
449448 VERSION : ${{ needs.prepare.outputs.version }}
450449 run : |
451- TRIGGER_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)
452- echo "trigger_time=$TRIGGER_TIME" >> "$GITHUB_OUTPUT"
453- echo "🚀 Triggering release-cli-dd workflow at $TRIGGER_TIME"
450+ echo "🚀 Triggering release-cli-dd workflow"
454451 echo " model-cli-ref: $RELEASE_TAG"
455452 echo " tag: v$VERSION"
456- gh workflow run release-cli-dd.yml \
453+
454+ # gh workflow run now returns run details (gh v2.87.0+)
455+ RUN_URL=$(gh workflow run release-cli-dd.yml \
457456 --repo docker/inference-engine-llama.cpp \
458457 -f model-cli-ref="$RELEASE_TAG" \
459- -f tag="v$VERSION"
460- echo "✅ release-cli-dd workflow triggered"
461-
462- - name : Wait for release-cli-dd to complete
463- env :
464- GH_TOKEN : ${{ secrets.CLI_RELEASE_PAT }}
465- TRIGGER_TIME : ${{ steps.trigger.outputs.trigger_time }}
466- run : |
467- echo "⏳ Waiting for release-cli-dd workflow to appear (triggered at $TRIGGER_TIME)..."
468- sleep 15
469-
470- # Find the run created after our trigger time to avoid picking up unrelated runs
471- for i in $(seq 1 30); do
472- RUN_ID=$(gh run list \
473- --repo docker/inference-engine-llama.cpp \
474- --workflow release-cli-dd.yml \
475- --limit 5 \
476- --json databaseId,createdAt \
477- --jq "[.[] | select(.createdAt >= \"$TRIGGER_TIME\")] | sort_by(.createdAt) | last | .databaseId")
478- if [ -n "$RUN_ID" ] && [ "$RUN_ID" != "null" ]; then
479- echo "Found release-cli-dd run: $RUN_ID"
480- break
481- fi
482- echo " Retry $i/30..."
483- sleep 10
484- done
458+ -f tag="v$VERSION" 2>&1 \
459+ | grep -o 'https://github.com/[^ ]*/actions/runs/[0-9]*')
485460
486- if [ -z "$RUN_ID" ] || [ "$RUN_ID" = "null" ]; then
487- echo "::error::Could not find release-cli-dd workflow run created after $TRIGGER_TIME"
488- exit 1
489- fi
461+ RUN_ID=$(echo "$RUN_URL" | grep -o '[0-9]*$')
462+ echo "✅ release-cli-dd workflow triggered: run $RUN_ID"
463+ echo " $RUN_URL"
490464
491465 echo "⏳ Waiting for release-cli-dd run $RUN_ID to complete..."
492466 gh run watch "$RUN_ID" \
@@ -561,53 +535,27 @@ jobs:
561535 contents : read
562536 outputs :
563537 packaging_image : ${{ steps.packaging.outputs.packaging_image }}
564- release_repo_trigger_time : ${{ steps.trigger_release_repo.outputs.trigger_time }}
538+ release_repo_run_id : ${{ steps.trigger_release_repo.outputs.run_id }}
565539 steps :
566- - name : Trigger release-model workflow in packaging repo
567- id : trigger
540+ - name : Trigger packaging and wait for completion
541+ id : packaging
568542 env :
569543 GH_TOKEN : ${{ secrets.CLI_RELEASE_PAT }}
570544 RELEASE_TAG : ${{ needs.prepare.outputs.release_tag }}
545+ VERSION : ${{ needs.prepare.outputs.version }}
571546 run : |
572- TRIGGER_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)
573- echo "trigger_time=$TRIGGER_TIME" >> "$GITHUB_OUTPUT"
574- echo "📦 Triggering release-model workflow in docker/packaging at $TRIGGER_TIME"
547+ echo "📦 Triggering release-model workflow in docker/packaging"
575548 echo " ref: $RELEASE_TAG"
576- gh workflow run release-model.yml \
577- --repo docker/packaging \
578- -f ref="$RELEASE_TAG"
579- echo "✅ release-model workflow triggered in docker/packaging"
580549
581- - name : Wait for packaging workflow to complete
582- id : packaging
583- env :
584- GH_TOKEN : ${{ secrets.CLI_RELEASE_PAT }}
585- VERSION : ${{ needs.prepare.outputs.version }}
586- TRIGGER_TIME : ${{ steps.trigger.outputs.trigger_time }}
587- run : |
588- echo "⏳ Waiting for packaging workflow to appear (triggered at $TRIGGER_TIME)..."
589- sleep 15
590-
591- # Find the run created after our trigger time to avoid picking up unrelated runs
592- for i in $(seq 1 30); do
593- RUN_ID=$(gh run list \
594- --repo docker/packaging \
595- --workflow release-model.yml \
596- --limit 5 \
597- --json databaseId,createdAt \
598- --jq "[.[] | select(.createdAt >= \"$TRIGGER_TIME\")] | sort_by(.createdAt) | last | .databaseId")
599- if [ -n "$RUN_ID" ] && [ "$RUN_ID" != "null" ]; then
600- echo "Found packaging run: $RUN_ID"
601- break
602- fi
603- echo " Retry $i/30..."
604- sleep 10
605- done
550+ # gh workflow run now returns run details (gh v2.87.0+)
551+ RUN_URL=$(gh workflow run release-model.yml \
552+ --repo docker/packaging \
553+ -f ref="$RELEASE_TAG" 2>&1 \
554+ | grep -o 'https://github.com/[^ ]*/actions/runs/[0-9]*')
606555
607- if [ -z "$RUN_ID" ] || [ "$RUN_ID" = "null" ]; then
608- echo "::error::Could not find packaging workflow run created after $TRIGGER_TIME"
609- exit 1
610- fi
556+ RUN_ID=$(echo "$RUN_URL" | grep -o '[0-9]*$')
557+ echo "✅ Packaging workflow triggered: run $RUN_ID"
558+ echo " $RUN_URL"
611559
612560 echo "⏳ Waiting for packaging run $RUN_ID to complete..."
613561 gh run watch "$RUN_ID" \
@@ -632,21 +580,26 @@ jobs:
632580 VERSION : ${{ needs.prepare.outputs.version }}
633581 PACKAGING_IMAGE : ${{ steps.packaging.outputs.packaging_image }}
634582 run : |
635- TRIGGER_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)
636- echo "trigger_time=$TRIGGER_TIME" >> "$GITHUB_OUTPUT"
637- echo "🚀 Triggering plugin release in docker/release-repo at $TRIGGER_TIME"
583+ echo "🚀 Triggering plugin release in docker/release-repo"
638584 echo " packaging_image: $PACKAGING_IMAGE"
639585 echo " model_version: $VERSION"
640586 echo " channel: stable"
641587 echo " release_live: true"
642- gh workflow run plugin.yml \
588+
589+ # gh workflow run now returns run details (gh v2.87.0+)
590+ RUN_URL=$(gh workflow run plugin.yml \
643591 --repo docker/release-repo \
644592 --ref production \
645593 -f packaging_image="$PACKAGING_IMAGE" \
646594 -f model_version="$VERSION" \
647595 -f channel=stable \
648- -f release_live=true
649- echo "✅ Plugin release workflow triggered in docker/release-repo"
596+ -f release_live=true 2>&1 \
597+ | grep -o 'https://github.com/[^ ]*/actions/runs/[0-9]*')
598+
599+ RUN_ID=$(echo "$RUN_URL" | grep -o '[0-9]*$')
600+ echo "run_id=$RUN_ID" >> "$GITHUB_OUTPUT"
601+ echo "✅ Plugin release workflow triggered: run $RUN_ID"
602+ echo " $RUN_URL"
650603
651604 - name : Post trigger summary
652605 env :
@@ -690,33 +643,9 @@ jobs:
690643 - name : Wait for release-repo plugin workflow to complete
691644 env :
692645 GH_TOKEN : ${{ secrets.CLI_RELEASE_PAT }}
693- TRIGGER_TIME : ${{ needs.release-cli-docker-ce-trigger.outputs.release_repo_trigger_time }}
646+ RUN_ID : ${{ needs.release-cli-docker-ce-trigger.outputs.release_repo_run_id }}
694647 run : |
695- echo "⏳ Waiting for release-repo plugin workflow to appear (triggered at $TRIGGER_TIME)..."
696- sleep 15
697-
698- # Find the run created after our trigger time to avoid picking up unrelated runs
699- for i in $(seq 1 30); do
700- RUN_ID=$(gh run list \
701- --repo docker/release-repo \
702- --workflow plugin.yml \
703- --limit 5 \
704- --json databaseId,createdAt \
705- --jq "[.[] | select(.createdAt >= \"$TRIGGER_TIME\")] | sort_by(.createdAt) | last | .databaseId")
706- if [ -n "$RUN_ID" ] && [ "$RUN_ID" != "null" ]; then
707- echo "Found release-repo run: $RUN_ID"
708- break
709- fi
710- echo " Retry $i/30..."
711- sleep 10
712- done
713-
714- if [ -z "$RUN_ID" ] || [ "$RUN_ID" = "null" ]; then
715- echo "::error::Could not find release-repo plugin workflow run created after $TRIGGER_TIME"
716- exit 1
717- fi
718-
719- echo "⏳ Waiting for release-repo run $RUN_ID to complete (includes manual deploy-to-live approval)..."
648+ echo "⏳ Waiting for release-repo run $RUN_ID to complete..."
720649 gh run watch "$RUN_ID" \
721650 --repo docker/release-repo \
722651 --exit-status
0 commit comments