Skip to content

Commit 4442c87

Browse files
authored
Merge pull request #687 from docker/fix-release
Fix release workflow
2 parents 99661ba + b120075 commit 4442c87

1 file changed

Lines changed: 84 additions & 44 deletions

File tree

.github/workflows/release.yml

Lines changed: 84 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -426,96 +426,136 @@ jobs:
426426
# Trigger model-cli-release workflow (private repo — signs binaries)
427427
# ---------------------------------------------------------------------------
428428
trigger-model-cli-release:
429-
needs: [prepare, test, release-notes]
429+
needs: [prepare, test]
430430
runs-on: ubuntu-latest
431431
permissions:
432432
contents: read
433433
steps:
434-
- name: Download release notes
435-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
436-
with:
437-
name: release-notes
438-
439-
- name: Read release notes
440-
id: notes
441-
run: |
442-
# Read release notes, base64-encode to safely pass multiline content
443-
NOTES_B64=$(base64 < release-notes.md)
444-
echo "changelog_b64=$NOTES_B64" >> "$GITHUB_OUTPUT"
445-
446434
- name: Trigger model-cli-release workflow
447435
env:
448436
GH_TOKEN: ${{ secrets.CLI_RELEASE_PAT }}
449437
RELEASE_TAG: ${{ needs.prepare.outputs.release_tag }}
450438
VERSION: ${{ needs.prepare.outputs.version }}
451439
run: |
452440
echo "🚀 Triggering model-cli-release workflow"
453-
echo " ref: $RELEASE_TAG"
454-
echo " release_tag: v$VERSION"
441+
echo " model-cli-ref: $RELEASE_TAG"
442+
echo " tag: v$VERSION"
455443
gh workflow run release.yml \
456444
--repo docker/model-cli-release \
457-
-f ref="$RELEASE_TAG" \
458-
-f release_tag="v$VERSION" \
459-
-f changelog_b64="${{ steps.notes.outputs.changelog_b64 }}"
445+
-f model-cli-ref="$RELEASE_TAG" \
446+
-f tag="v$VERSION"
460447
echo "✅ model-cli-release workflow triggered"
461448
462449
# ---------------------------------------------------------------------------
463-
# Trigger Docker CE packaging workflow
450+
# Trigger Docker CE packaging workflow, wait for it, then trigger release-repo
464451
# ---------------------------------------------------------------------------
465452
trigger-packaging:
466453
if: ${{ !inputs.skipPackaging }}
467454
needs: [prepare, trigger-model-cli-release]
468455
runs-on: ubuntu-latest
456+
timeout-minutes: 120
469457
permissions:
470458
contents: read
471459
steps:
472460
- name: Trigger release-model workflow in packaging repo
461+
id: trigger
473462
env:
474463
GH_TOKEN: ${{ secrets.CLI_RELEASE_PAT }}
475464
RELEASE_TAG: ${{ needs.prepare.outputs.release_tag }}
476465
run: |
477466
echo "📦 Triggering release-model workflow in docker/packaging"
478-
echo " tag_ref: $RELEASE_TAG"
467+
echo " ref: $RELEASE_TAG"
479468
gh workflow run release-model.yml \
480469
--repo docker/packaging \
481-
-f tag="$RELEASE_TAG"
470+
-f ref="$RELEASE_TAG"
482471
echo "✅ release-model workflow triggered in docker/packaging"
483472
484-
- name: Post instructions for release-repo
473+
- name: Wait for packaging workflow to complete
474+
id: packaging
485475
env:
476+
GH_TOKEN: ${{ secrets.CLI_RELEASE_PAT }}
486477
VERSION: ${{ needs.prepare.outputs.version }}
487-
RELEASE_TAG: ${{ needs.prepare.outputs.release_tag }}
488478
run: |
489-
cat >> "$GITHUB_STEP_SUMMARY" <<-SUMMARY
490-
## 📋 Next Steps: Release to Docker CE
479+
echo "⏳ Waiting for packaging workflow to appear..."
480+
sleep 15
481+
482+
# Find the most recent run of release-model.yml
483+
for i in $(seq 1 10); do
484+
RUN_ID=$(gh run list \
485+
--repo docker/packaging \
486+
--workflow release-model.yml \
487+
--limit 1 \
488+
--json databaseId,createdAt \
489+
--jq '.[0].databaseId')
490+
if [ -n "$RUN_ID" ]; then
491+
echo "Found packaging run: $RUN_ID"
492+
break
493+
fi
494+
echo " Retry $i/10..."
495+
sleep 10
496+
done
491497
492-
The \`release-model\` workflow has been triggered in \`docker/packaging\`.
493-
Once it completes, follow these manual steps:
498+
if [ -z "$RUN_ID" ]; then
499+
echo "::error::Could not find packaging workflow run"
500+
exit 1
501+
fi
494502
495-
### 1. Get the packaging image tag
503+
echo "⏳ Waiting for packaging run $RUN_ID to complete..."
504+
gh run watch "$RUN_ID" \
505+
--repo docker/packaging \
506+
--exit-status
496507
497-
Check the [release-model workflow runs](https://github.com/docker/packaging/actions/workflows/release-model.yml)
498-
for the image tag. It will look like:
499-
\`\`\`
500-
dockereng/packaging:model-v${VERSION}-<build_number>
501-
\`\`\`
508+
# Get the run number to construct the image tag
509+
RUN_NUMBER=$(gh run view "$RUN_ID" \
510+
--repo docker/packaging \
511+
--json number \
512+
--jq '.number')
502513
503-
### 2. Trigger the plugin release
514+
PACKAGING_IMAGE="dockereng/packaging:model-v${VERSION}-${RUN_NUMBER}"
515+
echo "📦 Packaging image: $PACKAGING_IMAGE"
516+
echo "packaging_image=$PACKAGING_IMAGE" >> "$GITHUB_OUTPUT"
517+
echo "✅ Packaging workflow completed successfully"
504518
505-
Run the [release buildx, compose, model, cagent](https://github.com/docker/release-repo/actions/workflows/plugin.yml) workflow with:
519+
- name: Trigger release-repo plugin workflow
520+
env:
521+
GH_TOKEN: ${{ secrets.CLI_RELEASE_PAT }}
522+
VERSION: ${{ needs.prepare.outputs.version }}
523+
PACKAGING_IMAGE: ${{ steps.packaging.outputs.packaging_image }}
524+
run: |
525+
echo "🚀 Triggering plugin release in docker/release-repo"
526+
echo " packaging_image: $PACKAGING_IMAGE"
527+
echo " model_version: $VERSION"
528+
echo " channel: stable"
529+
echo " release_live: true"
530+
gh workflow run plugin.yml \
531+
--repo docker/release-repo \
532+
--ref production \
533+
-f packaging_image="$PACKAGING_IMAGE" \
534+
-f model_version="$VERSION" \
535+
-f channel=stable \
536+
-f release_live=true
537+
echo "✅ Plugin release workflow triggered in docker/release-repo"
538+
539+
- name: Post summary
540+
env:
541+
VERSION: ${{ needs.prepare.outputs.version }}
542+
RELEASE_TAG: ${{ needs.prepare.outputs.release_tag }}
543+
PACKAGING_IMAGE: ${{ steps.packaging.outputs.packaging_image }}
544+
run: |
545+
cat >> "$GITHUB_STEP_SUMMARY" <<-SUMMARY
546+
## 📦 Docker CE Packaging & Release
506547
507-
| Parameter | Value |
508-
|-----------|-------|
509-
| **Image** | \`dockereng/packaging:model-v${VERSION}-<build_number>\` |
510-
| **Expected version** | \`${VERSION}\` (no v-prefix) |
511-
| **Release channel** | \`stable\` |
512-
| **Deploy to live** | ✅ Yes |
548+
| Step | Status |
549+
|------|--------|
550+
| Packaging image | \`${PACKAGING_IMAGE}\` |
551+
| Model version | \`${VERSION}\` |
552+
| Release channel | \`stable\` |
553+
| Deploy to live | ✅ Yes |
554+
| Release tag | \`${RELEASE_TAG}\` |
513555
514-
> **Tag reference used:** \`${RELEASE_TAG}\`
556+
The plugin release workflow has been triggered in [docker/release-repo](https://github.com/docker/release-repo/actions/workflows/plugin.yml).
515557
SUMMARY
516558
517-
echo "📋 Instructions for docker/release-repo have been added to the job summary"
518-
519559
# ---------------------------------------------------------------------------
520560
# Create GitHub Release with AI-generated release notes
521561
# ---------------------------------------------------------------------------

0 commit comments

Comments
 (0)