Skip to content

ci(docker): dual-publish nir-rs image to GHCR and Docker Hub - #38

Merged
rmems merged 10 commits into
mainfrom
release/docker-ghcr-hub
Aug 13, 2026
Merged

ci(docker): dual-publish nir-rs image to GHCR and Docker Hub#38
rmems merged 10 commits into
mainfrom
release/docker-ghcr-hub

Conversation

@rmems

@rmems rmems commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

Part of #26 / #26: Docker package for GitHub Container Registry and Docker Hub.

  • Root Dockerfile — multi-stage: builder runs cargo test --all-features + release load_inspect_lif; runtime image is Rust 1.97 + libhdf5 + workspace + binary
  • .github/workflows/docker.yml — neuromod-style:
    • PR: verify only (contents: read, no packages: write)
    • main / v* tags: dual push Hub + GHCR
  • Tags: latest, Cargo.toml semver, commit SHA
  • README + AGENTS docs

Registries

Registry Image
GHCR ghcr.io/limen-neural/nir-rs
Docker Hub ${{ vars.DOCKER_USER }}/nir-rs

Secrets

vars.DOCKER_USER, secrets.DOCKER_PAT, GITHUB_TOKEN (packages:write on publish job only)

Test plan

  • Local docker build --target builder succeeds
  • CI docker-verify green on this PR
  • After merge to main: images appear on GHCR + Hub

Closes nothing alone — remaining #26 work: cargo publish + GitHub Release notes.

Co-authored-by: Grok noreply@x.ai


< />!NOTE< /> Medium Risk
Introduces credentialed dual-registry publish (DOCKER_PAT, GHCR packages:write) and a new CI path that builds/pushes public images; no library or auth logic changes.

Overview
Adds a published Rust 1.97 + libhdf5 toolchain image for agents/consumers, dual-pushed to GHCR (ghcr.io/limen-neural/nir-rs) and Docker Hub.

Introduces a multi-stage root Dockerfile: the builder runs cargo test --all-features and builds load_inspect_lif; the runtime image ships the workspace, that binary, and HDF5 tooling. New docker.yml verifies builds on PRs (smoke checks, no package write) and publishes on main / v* tags with latest, semver, and SHA tags. Also adds .dockerignore and documents pull/run usage in README / AGENTS / CHANGELOG.

Reviewed by Cursor Bugbot for commit 5475fd9. Configure here.


Summary by cubic

Dual-publish nir-rs Docker image to GHCR and Docker Hub with a verify-on-PR, publish-on-main/tags CI. Part of #26 / #26 to ship a stable Rust 1.97 + libhdf5 toolchain image with automated releases.

  • New Features
    • Root Dockerfile: multi-stage; builder runs cargo test --all-features and builds load_inspect_lif; runtime includes Rust 1.97 + libhdf5.
    • CI (.github/workflows/docker.yml): PRs verify build; main/v* tags dual-publish to ghcr.io/limen-neural/nir-rs and ${{ vars.DOCKER_USER }}/nir-rs.
    • Tags: latest, semver from Cargo.toml, and commit SHA.
    • Publish creds: vars.DOCKER_USER, secrets.DOCKER_PAT, GITHUB_TOKEN (packages:write on publish).
    • Docs: README badge/usage, AGENTS table, and changelog updated.

Written for commit 5475fd9. Summary will update on new commits.

Review in cubic

Add root Dockerfile (Rust 1.97 + libhdf5, example binary) and docker.yml
with PR verify-only vs main/tag dual push. Document pull paths in README.

Part of #26 / LIM-996.

Co-authored-by: Grok <noreply@x.ai>
@codeant-ai

codeant-ai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Skipping CodeAnt AI review — this PR is a back-merge between long-lived branches (release/docker-ghcr-hubmain). The diff here has already been reviewed when the underlying commits landed on the source branch, so re-running analysis would produce duplicate findings on already-reviewed code.

If you want to analyze this anyway (e.g. you resolved conflicts with new logic), comment @codeant-ai : review and CodeAnt will start a review.

@linear-code

linear-code Bot commented Aug 12, 2026

Copy link
Copy Markdown

LIM-996

@rmems

rmems commented Aug 12, 2026

Copy link
Copy Markdown
Member Author

Linear: LIM-996 · GH #26

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added a multi-stage container image for running and developing the project.
    • Published images are available through GitHub Container Registry and Docker Hub.
    • Images include required runtime and development tooling and run as a non-root account by default.
    • Added automated image builds, tests, smoke checks, and publishing for pull requests, main-branch updates, and version releases.
  • Documentation

    • Added setup, usage, image-pull, and local-build instructions.
    • Documented container availability and workflow details.
    • Added an unreleased changelog entry.

Walkthrough

Added a multi-stage Docker image for nir-rs, Docker workflow validation and publishing to Docker Hub and GHCR, Docker context exclusions, and documentation for image use and local builds.

Changes

Docker delivery

Layer / File(s) Summary
Docker image definition
.dockerignore, Dockerfile
The Docker context excludes development and build artifacts. The multi-stage image installs dependencies, runs tests, builds load_inspect_lif, and defines the runtime image.
Pull-request Docker verification
.github/workflows/docker.yml
Pull requests build the image, run runtime smoke tests, and execute builder-stage tests.
Registry publishing
.github/workflows/docker.yml
Pushes to main and version tags authenticate with Docker Hub and GHCR. The workflow validates the Cargo version and publishes SHA, version, and latest tags. It also attempts to make the GHCR package public.
Docker documentation
README.md, AGENTS.md, CHANGELOG.md
Documentation covers image usage, workflow status, published image references, and the new Docker workflow.

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

Sequence Diagram(s)

sequenceDiagram
  participant GitHubActions
  participant DockerBuild
  participant DockerHub
  participant GHCR
  GitHubActions->>DockerBuild: Build and validate the image
  GitHubActions->>GitHubActions: Generate tags from Cargo.toml and the Git ref
  GitHubActions->>DockerHub: Authenticate and publish generated tags
  GitHubActions->>GHCR: Authenticate and publish generated tags
Loading

Possibly related issues

  • Limen-Neural/nir-rs issue 26 — The issue covers the Docker release requirements implemented by this change.

Possibly related PRs

  • Limen-Neural/nir-rs#25 — The Dockerfile builds and tests the load_inspect_lif example introduced by this PR.

Suggested labels: documentation

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: publishing the nir-rs Docker image to GHCR and Docker Hub.
Description check ✅ Passed The description directly explains the Docker packaging, CI verification, dual-registry publishing, tags, credentials, and documentation changes.
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
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch release/docker-ghcr-hub

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

@amazon-q-developer amazon-q-developer 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.

Review Summary

This PR adds Docker image publishing to GHCR and Docker Hub with appropriate CI verification workflows. The implementation follows security best practices with pinned action SHAs, minimal permissions, and proper secret handling.

Critical Issue Found

Security Configuration: The GHCR registry path is hardcoded while Docker Hub correctly uses a variable, creating a maintenance and security risk if the repository is transferred or the organization changes.

Overall Assessment

The Docker workflow structure is well-designed with proper separation between PR verification (read-only) and publishing (write permissions only when needed). The Dockerfile follows multi-stage build best practices. Once the hardcoded registry path is addressed, this will be ready to merge.


You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.

Comment thread .github/workflows/docker.yml Outdated
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown

Qodana for Rust

It seems all right 👌

No new problems were found according to the checks applied

☁️ View the detailed Qodana report

Contact Qodana team

Contact us at qodana-support@jetbrains.com

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 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.yml:
- Around line 113-121: Update the version-validation block in the Docker
workflow to validate tag events against the extracted VER from Cargo.toml. When
the event is a tag push, require the triggering tag name to equal v${VER}
exactly and fail before constructing TAGS or publishing if it does not; preserve
the existing semver validation and non-tag behavior.
- Around line 82-85: Update the publish job condition in the workflow to require
that github.repository matches the upstream repository, in addition to the
existing push-to-main or version-tag checks. Preserve the current branch and tag
restrictions while preventing fork workflows from attempting to publish.

In `@Dockerfile`:
- Around line 43-48: Update the runtime stage around WORKDIR, the /workspace
COPY, and the cargo fetch RUN instruction to create an unprivileged user, assign
ownership of the copied workspace to that user, switch to USER before
pre-warming the cache, and preserve the existing failure-tolerant cargo fetch
behavior.

In `@README.md`:
- Line 81: Remove the `|| true` failure suppression from the documented `docker
run` verification command so missing binaries, unsupported arguments, and
runtime failures propagate as command failures; if the invocation is intended to
be informational, explicitly label it as such instead.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: c769334d-4228-4c38-9766-cb85fec020ee

📥 Commits

Reviewing files that changed from the base of the PR and between a68a316 and 5475fd9.

📒 Files selected for processing (6)
  • .dockerignore
  • .github/workflows/docker.yml
  • AGENTS.md
  • CHANGELOG.md
  • Dockerfile
  • README.md

Comment thread .github/workflows/docker.yml Outdated
Comment thread .github/workflows/docker.yml Outdated
Comment thread Dockerfile Outdated
Comment thread README.md Outdated

@cursor cursor 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.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 5475fd9. Configure here.

Comment thread Dockerfile Outdated
Comment thread Dockerfile Outdated

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5475fd98ff

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/docker.yml Outdated
Comment thread Dockerfile Outdated
Comment thread .github/workflows/docker.yml Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 6 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread .github/workflows/docker.yml Outdated
Comment thread .github/workflows/docker.yml Outdated
Comment thread .github/workflows/docker.yml Outdated
Comment thread Dockerfile Outdated
Comment thread Dockerfile Outdated
Comment thread .dockerignore Outdated
Comment thread README.md Outdated
Comment thread .github/workflows/docker.yml Outdated
Comment thread README.md Outdated
- Publish :X.Y.Z only on matching v* tags; main gets SHA + latest
- GHCR owner from github.repository_owner (lowercased)
- Restrict publish to Limen-Neural/nir-rs
- Runtime WORKDIR /src so example CARGO_MANIFEST_DIR fixtures work
- Non-root user; drop target/ from published image
- README smoke uses load_inspect_lif without || true
- CI smoke runs default load_inspect_lif

Co-authored-by: Grok <noreply@x.ai>

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1dfe67a020

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Dockerfile
Comment thread README.md Outdated
Comment thread .github/workflows/docker.yml Outdated
Comment thread Dockerfile Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 3 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread Dockerfile
- chown /src so non-root can recreate target/; PATH includes CARGO_HOME/bin
- Drop Docker Hub login from PR verify (no DOCKER_PAT on PR workflows)
- concurrency cancel-in-progress on docker jobs
- Remove redundant builder-target load from verify
- Clarify Hub image uses vars.DOCKER_USER

Co-authored-by: Grok <noreply@x.ai>
@rmems

rmems commented Aug 12, 2026

Copy link
Copy Markdown
Member Author

Babysit check cycle 2 (push fix(docker): writable /src…):

Thread Action
Writable /src for non-root cargo Fixed — chown nir:nir /src before COPY
DOCKER_PAT on PR verify Fixed — no registry login on PRs
Concurrent :latest races Fixed — concurrency + cancel-in-progress
Redundant builder load Removed
CARGO_HOME/bin on PATH Fixed
Hub path docs Documented as $DOCKER_USER/nir-rs

Local smoke: load_inspect_lif + write under /src OK. Awaiting CI.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 19f33544c3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/docker.yml Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 4 files (changes from recent commits).

Requires human review: Auto-approval blocked because this review re-detected 1 unresolved issue already reported by Cubic.
Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread README.md Outdated
Avoid shell-placeholder Hub pulls that can target an unrelated namespace.

Co-authored-by: Grok <noreply@x.ai>

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 207d72e122

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/docker.yml Outdated
Comment thread README.md
…ublic

- Target main and Main (REVIEW.md CI checklist)
- Publish job concurrency shared across branch/tag so :latest cannot race
- Best-effort set GHCR package visibility public after first push
- Document GHCR public requirement in README

Co-authored-by: Grok <noreply@x.ai>
@rmems

rmems commented Aug 12, 2026

Copy link
Copy Markdown
Member Author

Codex pass (/pr-babysit codex) on head b3d720a:

Finding Status
Main + main CI triggers (REVIEW.md) Fixed
Shared concurrency for :latest across branch/tag Fixed
GHCR package public for unauthenticated pulls Best-effort API + README note
Prior P1/P2 (writable /src, no PR secrets, PATH, fixture path, version tags) Already on branch

CI re-running. Not merging (babysit policy).

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b3d720add4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/docker.yml Outdated
Comment thread .github/workflows/docker.yml Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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.yml:
- Around line 77-80: Update the workflow concurrency configuration for the
Docker publication group to set cancel-in-progress to false and queue to max,
ensuring version-tag publications are never canceled or replaced. Preserve the
shared group behavior for main and tag refs, and use a release queue if the
platform requires preserving more than 100 pending runs.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 7ca70c63-a3ae-43b1-91bc-4584f0f29f8d

📥 Commits

Reviewing files that changed from the base of the PR and between 207d72e and b3d720a.

📒 Files selected for processing (2)
  • .github/workflows/docker.yml
  • README.md

Comment thread .github/workflows/docker.yml Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 2 files (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread .github/workflows/docker.yml
Comment thread .github/workflows/docker.yml
- Tag script treats refs/heads/Main like main (SHA + latest)
- Publish concurrency still shared across branch/tag but
  cancel-in-progress: false so v* :X.Y.Z jobs are not aborted

Co-authored-by: Grok <noreply@x.ai>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/docker.yml (1)

149-167: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Use a package-management credential for GHCR visibility.

GITHUB_TOKEN cannot update package visibility. If anonymous pulls are required, use an authorized PAT and fail unless visibility is public; otherwise document that GHCR pulls require authentication.

🤖 Prompt for 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.

In @.github/workflows/docker.yml around lines 149 - 167, The “Ensure GHCR
package is public” step must not use GITHUB_TOKEN for visibility changes.
Replace GH_TOKEN with an authorized package-management PAT secret, verify the
package visibility is public after the org or user API update, and fail the
workflow if it cannot be set or confirmed; if anonymous pulls are not intended,
remove this automation and document the authentication requirement.
🤖 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.yml:
- Around line 77-81: Update the docker-publish concurrency group to configure
queueing with queue: max alongside cancel-in-progress: false, so pending main
and version-tag publishes are retained rather than replaced; leave the existing
group key and active-run cancellation behavior unchanged.

---

Outside diff comments:
In @.github/workflows/docker.yml:
- Around line 149-167: The “Ensure GHCR package is public” step must not use
GITHUB_TOKEN for visibility changes. Replace GH_TOKEN with an authorized
package-management PAT secret, verify the package visibility is public after the
org or user API update, and fail the workflow if it cannot be set or confirmed;
if anonymous pulls are not intended, remove this automation and document the
authentication requirement.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2d5210c5-1d07-4c7c-9d3e-19c161f1d41a

📥 Commits

Reviewing files that changed from the base of the PR and between b3d720a and 58ec8f0.

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

Comment thread .github/workflows/docker.yml Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 1 file (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread .github/workflows/docker.yml
Tag publishes never cancel and are not replaced by main queue slots;
branch publishes still cancel superseded main runs.

Co-authored-by: Grok <noreply@x.ai>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 1 file (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread .github/workflows/docker.yml Outdated
Shared concurrency group for main and v* tags (cancel-in-progress: false)
so branch/tag jobs cannot race on :latest and in-flight version-tag
publishes are not aborted.

Co-authored-by: Grok <noreply@x.ai>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 1 file (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread .github/workflows/docker.yml
Default concurrency keeps only one pending run; a later main push
could replace a queued v* publish and skip the immutable :X.Y.Z
image. queue: max retains pending tag jobs while still serializing
all :latest writers in one group with cancel-in-progress: false.

Co-authored-by: Grok <noreply@x.ai>
@rmems rmems linked an issue Aug 13, 2026 that may be closed by this pull request
12 tasks
Move dual GHCR/Hub publish from Unreleased into the 0.4.1 section
so the crates.io + image release story matches one version.

Co-authored-by: Grok <noreply@x.ai>
@rmems
rmems merged commit 9456834 into main Aug 13, 2026
18 checks passed
@rmems
rmems deleted the release/docker-ghcr-hub branch August 13, 2026 03:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[nir-rs] GH#26 — release: publish 0.4.1 (crates.io + Docker GHCR/Hub + GitHub Release)

1 participant