Skip to content

Commit 7e77d7c

Browse files
committed
fix(release): streamline release workflows by removing unnecessary wait steps and enhancing trigger feedback
1 parent d928e9b commit 7e77d7c

1 file changed

Lines changed: 36 additions & 107 deletions

File tree

.github/workflows/release.yml

Lines changed: 36 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)