ci(docker): publish releases to Docker Hub#97122
Conversation
|
Codex review: found issues before merge. Reviewed June 28, 2026, 2:10 PM ET / 18:10 UTC. Summary PR surface: Tests +33, Docs +13, Config +139. Total +185 across 4 files. Reproducibility: yes. for the PR finding: the live Docker Hub tag API returns Review metrics: 3 noteworthy metrics.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Land this only after release owners either complete a first Docker Hub publish/backfill or qualify the docs as pending, and explicitly accept or adjust the fail-closed Docker Hub release gating. Do we have a high-confidence way to reproduce the issue? Yes for the PR finding: the live Docker Hub tag API returns Is this the best way to solve the issue? No, not as-is. The workflow belongs in the release surface, but the docs should wait for or qualify the first Docker Hub publish, and release owners should explicitly accept the fail-closed Docker Hub secret and availability policy. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 55d7b5b36ca1. Label changesLabel justifications:
Evidence reviewedPR surface: Tests +33, Docs +13, Config +139. Total +185 across 4 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
3a1adb3 to
92a7ae3
Compare
a57ff0b to
3d9f9e7
Compare
|
Merged via squash.
|
What Problem This Solves
OpenClaw's official Docker release workflow only published images to GHCR, while Docker Hub had no official
openclaw/openclawrelease image. That left users who search or deploy from Docker Hub pointed at community mirrors instead of a release surface controlled by the project.Why This Change Was Made
This keeps GHCR as the primary registry and adds Docker Hub as an official mirror for the same stable and beta release tags, architecture-specific tags, manifests, and attestation verification path. The workflow now fails fast if
DOCKERHUB_USERNAMEorDOCKERHUB_TOKENare missing, so release operators do not get a partial publish by accident.Beta releases publish immutable versioned tags, including browser/slim/arch variants, but do not advance
latestormain. Manual backfills keep the same version-only behavior.The docs continue to recommend GHCR first, but now show
openclaw/openclawas the official Docker Hub mirror and warn against unofficial community mirrors.User Impact
Users can pull official OpenClaw images from either:
Beta users can also pull explicit beta tags without affecting stable aliases:
Release operators keep GHCR as the primary source while publishing the Docker Hub mirror from the same workflow and verification steps.
Evidence
openclaw/openclaw.DOCKERHUB_USERNAME,DOCKERHUB_TOKEN.node -e "const fs=require('fs'); const YAML=require('yaml'); YAML.parse(fs.readFileSync('.github/workflows/docker-release.yml','utf8')); console.log('docker-release yaml ok')"git diff --check origin/main..HEADpnpm_config_verify_deps_before_run=false pnpm test:serial src/dockerfile.test.ts test/scripts/ci-workflow-guards.test.ts- 56 tests passed.pnpm_config_verify_deps_before_run=false pnpm docs:check-mdxpnpm_config_verify_deps_before_run=false pnpm format:docs:checkOPENCLAW_TESTBOX=1 pnpm_config_verify_deps_before_run=false pnpm check:changed- passed in Testboxtbx_01kw35vsyj4ef9h02v9vxzj7mv, Actions run https://github.com/openclaw/openclaw/actions/runs/28271904813.