Skip to content

fix #12: github docker release script - #13

Merged
JoshuaChi merged 3 commits into
mainfrom
fix/12-github-ci
Aug 8, 2026
Merged

JoshuaChi merged 3 commits into
mainfrom
fix/12-github-ci

Conversation

@JoshuaChi

@JoshuaChi JoshuaChi commented Aug 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Bug Fixes

    • Improved release validation to prevent publishing duplicate or ambiguous Docker image versions.
    • Added safeguards to ensure image pushes return exactly one valid digest.
    • Improved multi-platform image manifest creation for more reliable releases.
    • Serialized Docker release runs to prevent overlapping releases from interfering with each other.
  • Chores

    • Docker CI now runs for all pull request changes, improving build and validation coverage.

@coderabbitai

coderabbitai Bot commented Aug 8, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: aabf07b3-3a75-4c70-bf8c-d1bdc38c3baa

📥 Commits

Reviewing files that changed from the base of the PR and between de790b4 and 62510b7.

📒 Files selected for processing (1)
  • .github/workflows/docker-ci.yml

📝 Walkthrough

Walkthrough

The Docker release workflow validates versions before builds, captures digests from pushed images, and creates manifests from explicit digest references. Docker CI now runs for every pull request.

Changes

Docker workflows

Layer / File(s) Summary
Pre-build version validation
.github/workflows/docker-release.yml
Release runs are serialized per version. The check-version job resolves the version, authenticates with Docker Hub, and rejects existing or indeterminately inspectable tags before builds start.
Published digest capture
.github/workflows/docker-release.yml
Platform pushes now extract the digest from docker push output and fail when the digest is empty.
Digest-based manifest assembly
.github/workflows/docker-release.yml
The merge job consumes the validated version and builds an explicit array of digest-based image references for manifest creation.
Pull-request CI trigger
.github/workflows/docker-ci.yml
Docker CI now triggers for all pull requests instead of only changes that match the previous path filters.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • deventlab/d-lmdb#8: Both PRs modify the Docker release workflow and its multi-platform manifest creation step.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the Docker release workflow fix, which is the main change in the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/12-github-ci

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/docker-release.yml:
- Around line 16-18: Update the workflow concurrency group expression near the
top of docker-release.yml to use the same normalized version value as the
publish step, stripping any leading “v” from release tags and inputs so
equivalent releases share one key. Preserve cancel-in-progress: false and ensure
v1.2.3 and 1.2.3 cannot run concurrently.
- Around line 121-133: Update the push step’s digest extraction to capture the
complete docker push output, collect all matching sha256 digests into an array,
and require exactly one match before writing the digest to GITHUB_OUTPUT. Fail
with a clear error when the match count is zero or greater than one, and
preserve the single digest for the existing Export digest step.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8ad2eda9-4ee7-4e22-86a0-f2cd9735d3ba

📥 Commits

Reviewing files that changed from the base of the PR and between 6d3671f and 91d0b1a.

📒 Files selected for processing (1)
  • .github/workflows/docker-release.yml

Comment thread .github/workflows/docker-release.yml
Comment thread .github/workflows/docker-release.yml Outdated
@JoshuaChi
JoshuaChi merged commit 53a61d6 into main Aug 8, 2026
6 checks passed
@JoshuaChi
JoshuaChi deleted the fix/12-github-ci branch August 8, 2026 10:16
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