Skip to content

ci: publish helm chart to ghcr.io on chart/* tag#233

Merged
ayuskauskas merged 1 commit into
mainfrom
ci/publish-chart-ghcr
May 14, 2026
Merged

ci: publish helm chart to ghcr.io on chart/* tag#233
ayuskauskas merged 1 commit into
mainfrom
ci/publish-chart-ghcr

Conversation

@ayuskauskas

@ayuskauskas ayuskauskas commented May 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add a publish-chart job to .github/workflows/release.yml that fires when a chart/v* tag is pushed, verifies the tag matches chart/Chart.yaml, packages the chart, and pushes it as an OCI artifact to ghcr.io/nvidia/nodewright/charts using the workflow's GITHUB_TOKEN (granted packages: write).
  • Document the new install path in docs/release-process.md. No nvcr.io/NGC changes — the existing docs claim there remains aspirational for those targets.

Test plan

  • Bump chart/Chart.yaml to a throwaway version (e.g. v0.15.1-test.1) on a test branch, push a matching chart/v0.15.1-test.1 tag, and confirm the publish-chart job runs and the artifact appears under ghcr.io/nvidia/nodewright/charts/skyhook-operator.
  • Delete the test GitHub Release and tag after verifying.
  • First successful push will require a manual flip of the new package from private to public (or grant pull access to consuming teams) at github.com/orgs/NVIDIA/packages.
  • Verify helm pull oci://ghcr.io/nvidia/nodewright/charts/skyhook-operator --version <test-version> succeeds from a logged-in client.

Notes

  • Chart name remains skyhook-operator (chart hasn't been renamed yet); the OCI artifact name follows.
  • Helm 3.10+ accepts the v-prefixed version used in Chart.yaml. If downstream tools (ArgoCD, Flux) push back on this, the prefix can be dropped in a follow-up.

Adds a publish-chart job to release.yml that fires when a chart/v*
tag is pushed: verifies the tag matches chart/Chart.yaml, packages
the chart, and pushes it as an OCI artifact to
ghcr.io/nvidia/nodewright/charts using the workflow's GITHUB_TOKEN.

Documents the new install path in docs/release-process.md.

Signed-off-by: Alex Yuskauskas <[email protected]>
@coderabbitai

coderabbitai Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR introduces automated Helm chart publishing to the release workflow. A new CI job triggers on chart/* tag pushes, validates that the tag version matches the chart metadata, packages the Helm chart, authenticates to GHCR, and publishes the package as an OCI artifact. The chart version field was updated to v0.15.1-test.1, and release documentation was added to explain the new chart/v* tag-based publishing mechanism with example installation commands.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly and concisely summarizes the main change: adding automation to publish Helm charts to ghcr.io when chart tags are pushed.
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.
Description check ✅ Passed The PR description clearly explains the changes: adding a publish-chart job, documenting the install path, and includes a detailed test plan with verification steps.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/publish-chart-ghcr

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

@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 `@chart/Chart.yaml`:
- Line 8: Update the Chart.yaml version entry to remove the temporary prerelease
suffix so the chart in main reflects the intended release version: replace the
current "version: v0.15.1-test.1" value with the final semantic version (e.g.,
"v0.15.1" or the appropriate release bump) so the test artifact isn’t
published/consumed as the canonical chart.
🪄 Autofix (Beta)

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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 27e1ede0-abe3-47e9-86d0-f49420f90b42

📥 Commits

Reviewing files that changed from the base of the PR and between 13294d3 and fb93ebb.

📒 Files selected for processing (3)
  • .github/workflows/release.yml
  • chart/Chart.yaml
  • docs/release-process.md

Comment thread chart/Chart.yaml Outdated
@ayuskauskas

Copy link
Copy Markdown
Collaborator Author

Verified it works:

 helm registry login ghcr.io
Username: [email protected]
Password:
Login Succeeded
$ helm pull oci://ghcr.io/nvidia/nodewright/charts/skyhook-operator --version v0.15.1-test.1
Pulled: ghcr.io/nvidia/nodewright/charts/skyhook-operator:v0.15.1-test.1
Digest: sha256:1a9315e25e993b235792872c1d2df5a69d21c2f4257f05db49cf33600f200ac9

@ayuskauskas ayuskauskas force-pushed the ci/publish-chart-ghcr branch from fb93ebb to a24d468 Compare May 13, 2026 23:34
@coveralls

Copy link
Copy Markdown

Coverage Report for CI Build 25832291011

Warning

No base build found for commit 13294d3 on main.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 81.905%

Details

  • Patch coverage: No coverable lines changed in this PR.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 9439
Covered Lines: 7731
Line Coverage: 81.9%
Coverage Strength: 9.61 hits per line

💛 - Coveralls

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.

3 participants