ci: separate Docker Hub publishing from standalone E2E - #65
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
git diff --checkpassed.concurrency.queuediagnostic excluded; the existing queue configuration is retained.