Skip to content

[CI] Consolidate Docker release workflows into reusable workflow#21596

Open
Kangyan-Zhou wants to merge 4 commits intosgl-project:mainfrom
Kangyan-Zhou:consolidate/docker-release-workflows
Open

[CI] Consolidate Docker release workflows into reusable workflow#21596
Kangyan-Zhou wants to merge 4 commits intosgl-project:mainfrom
Kangyan-Zhou:consolidate/docker-release-workflows

Conversation

@Kangyan-Zhou
Copy link
Copy Markdown
Collaborator

Summary

  • Extract shared Docker build logic into a reusable _docker-build-and-publish.yml workflow (workflow_call)
  • Simplify 3 caller workflows from ~800 lines total to ~190 lines (thin wrappers specifying target, version, tags, environment)
  • Delete release-docker-cu13-framework.yml (self-described as temporary, now redundant with release-docker.yml)
  • Fix: runtime ARM64 CUDA 13 build was missing --build-arg INSTALL_FLASHINFER_JIT_CACHE=1
  • All workflows now use job outputs instead of upload-artifact/download-artifact for passing digests

Before → After

File Before After
_docker-build-and-publish.yml N/A 271 lines (new)
release-docker.yml 295 47
release-docker-runtime.yml 310 47
release-docker-dev.yml 210 96
release-docker-cu13-framework.yml 191 deleted
Total 1006 461

Test plan

  • Trigger Release Docker Images workflow via workflow_dispatch and verify framework images build + manifests created
  • Trigger Release Docker Runtime Images workflow via workflow_dispatch and verify runtime images build + manifests created
  • Trigger Build and Push Development Docker Images workflow with a custom tag and verify dev images build correctly
  • Verify nightly cron still produces dev / dev-cu13 / nightly-dev-* tags

🤖 Generated with Claude Code

Extract shared build logic (checkout, disk cleanup, buildx setup, Docker
login, build-by-digest, manifest creation) into a reusable _docker-build-
and-publish.yml workflow. The 3 remaining caller workflows are thin
wrappers that specify target, version, tags, and environment.

Changes:
- New: _docker-build-and-publish.yml reusable workflow (workflow_call)
- Simplified: release-docker.yml (295→47 lines)
- Simplified: release-docker-runtime.yml (310→47 lines)
- Simplified: release-docker-dev.yml (210→96 lines)
- Deleted: release-docker-cu13-framework.yml (temporary, now redundant)

Also fixes: runtime ARM64 CUDA 13 build was missing
--build-arg INSTALL_FLASHINFER_JIT_CACHE=1 (now handled uniformly).

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

Kangyan-Zhou and others added 3 commits March 28, 2026 00:05
Extract the nightly tag cleanup logic into _docker-cleanup-nightly.yml
so it can be called from release-docker-dev.yml and also triggered
manually via workflow_dispatch for on-demand cleanup.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
…ntime)

Add aggressive_cleanup input (default false) to the reusable workflow.
When false (release/runtime), free-disk-space uses conservative settings
(tool-cache/docker-images/swap-storage: false) and Docker prune is
skipped — matching the original behavior. When true (dev), aggressive
cleanup is used.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
More disk space is always better on dedicated build nodes. No need to
parameterize this.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant