Skip to content

ci: separate Docker Hub publishing from standalone E2E - #65

Merged
tianyuzhou95 merged 1 commit into
mainfrom
codex/separate-dockerhub-publish
Sep 12, 2026
Merged

tianyuzhou95 merged 1 commit into
mainfrom
codex/separate-dockerhub-publish

Conversation

@tianyuzhou95

Copy link
Copy Markdown
Collaborator

Docker Hub publishing currently appears inside the Standalone E2E job. Move it into a separate Publish to Docker Hub job that runs only after Standalone E2E succeeds on upstream main, making test and publication results visible separately.

The E2E job exports its tested image as a gzip-compressed Actions artifact. The publishing job downloads that exact artifact by ID and verifies the loaded image ID against the E2E output. It does not rebuild the image. PRs and forks skip both image transfer and publication; Docker Hub still receives only akerneldev/all-in-one:latest.

Move the publication lock to the new job, retaining its existing key to coordinate with older workflow runs. Check main before downloading and again before pushing, so superseded commits cannot overwrite a newer publication. Builds and E2E can now run concurrently across main pushes; publishing remains serialized.

Artifacts are retained for one day. A failed publishing job can be rerun within that window; after expiration, rerun all jobs to rebuild and retest. This adds one artifact upload/download on main. Credentials and image build settings are unchanged. Only the workflow and AGENTS.md change.

Validation:

  • Workflow Bash syntax and git diff --check passed.
  • actionlint 1.7.12 passed with only its known unsupported concurrency.queue diagnostic excluded; the existing queue configuration is retained.
  • Ten local mocked scenarios passed: successful export/load/latest publication, superseded main before download, main advancing before push, API failures at both checks, inspect/save/load failures, mismatched image ID, and push failure. The export test verifies Docker failure propagates through gzip.
  • Checked job dependencies, upstream-main-only gates, artifact ID wiring, attempt-specific names, one-day retention, and lock compatibility.
  • Actual Actions artifact transfer and Docker Hub publishing require a main push; PR CI skips those operations.

Move Docker Hub login and publication into a dependent job so the CI
view separates E2E results from publishing. Transfer the tested image
through a compressed Actions artifact and verify its image ID before
pushing, without rebuilding or publishing intermediate registry tags.

Retain the publication lock and main-head checks to prevent older runs
from replacing a newer latest image. Keep artifacts for one day and
skip both image transfer and publication for PRs and forks.

Signed-off-by: Tianyu Zhou <albert.zty@antgroup.com>
@tianyuzhou95
tianyuzhou95 merged commit c1ef544 into main Sep 12, 2026
10 checks passed
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