Skip to content

Add Helm chart OCI package publishing to GitHub Container Registry#466

Open
notandy wants to merge 1 commit intomainfrom
pushHelmChartToGhcr
Open

Add Helm chart OCI package publishing to GitHub Container Registry#466
notandy wants to merge 1 commit intomainfrom
pushHelmChartToGhcr

Conversation

@notandy
Copy link
Contributor

@notandy notandy commented Mar 12, 2026

This adds support for automatically packaging and publishing Helm charts to GHCR. The feature includes:

  • New pushHelmChartToGhcr configuration in githubWorkflow with options for chart path, linting, dependency updates, and versioning
  • Automatic version detection from git tags (semver) or commit SHA
  • Chart.AppVersion synchronization with container image tags for seamless integration
  • Optional disabling of auto-versioning to use Chart.yaml version instead
  • Helm chart linting and dependency update support

@notandy notandy requested a review from a team as a code owner March 12, 2026 20:40
@notandy notandy force-pushed the pushHelmChartToGhcr branch 2 times, most recently from 4c903d1 to 826cd95 Compare March 12, 2026 20:48
@notandy notandy force-pushed the pushHelmChartToGhcr branch from 826cd95 to c762f63 Compare March 12, 2026 21:05
@notandy
Copy link
Contributor Author

notandy commented Mar 13, 2026


`lint` configures whether the Helm chart should be linted with `helm lint` before packaging and pushing. Defaults to `true`.

`dependencyUpdate` configures whether chart dependencies should be updated with `helm dependency update` before packaging and pushing. Defaults to `true`.
Copy link
Member

Choose a reason for hiding this comment

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

This is within the lock file constraints, right? Than fine for me.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

correct, it's just a regular helm dep update, so only the lock file will be updated. It shouldn't hurt and only matters if the chart has dependency - so I've enabled it by default.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds support to generate a GitHub Actions workflow that packages and pushes a Helm chart to GHCR (OCI), including new configuration knobs and README documentation.

Changes:

  • Document new githubWorkflow.pushHelmChartToGhcr configuration in README.md.
  • Introduce internal/ghworkflow/workflow_helm.go to generate a Helm OCI publish workflow (lint/package/push + optional auto-versioning).
  • Wire the new workflow into rendering and add corresponding config/constants.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
README.md Documents Helm chart publishing workflow configuration and behavior.
internal/ghworkflow/workflow_helm.go New workflow generator for packaging/pushing Helm charts to GHCR (OCI).
internal/ghworkflow/render.go Ensures the Helm workflow is rendered alongside existing workflows.
internal/core/constants.go Adds HelmSetupAction constant for azure/setup-helm.
internal/core/config.go Adds PushHelmChartToGhcrConfig to GitHub workflow configuration.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@notandy notandy force-pushed the pushHelmChartToGhcr branch 3 times, most recently from af6d7fc to 31ddbf0 Compare March 13, 2026 15:16
This adds support for automatically packaging and publishing Helm charts to GHCR. The feature includes:

- New `pushHelmChartToGhcr` configuration in githubWorkflow with options for chart path, linting, dependency updates, and versioning
- Automatic version detection from git tags (semver) or commit SHA
- Chart.AppVersion synchronization with container image tags for seamless integration
- Optional disabling of auto-versioning to use Chart.yaml version instead
- Helm chart linting and dependency update support
@notandy notandy force-pushed the pushHelmChartToGhcr branch from 31ddbf0 to b4435a8 Compare March 13, 2026 15:18
@github-actions
Copy link
Contributor

Merging this branch will not change overall coverage

Impacted Packages Coverage Δ 🤖
github.com/sapcc/go-makefile-maker/internal/core 0.00% (ø)
github.com/sapcc/go-makefile-maker/internal/ghworkflow 0.00% (ø)

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/sapcc/go-makefile-maker/internal/core/config.go 0.00% (ø) 54 0 54
github.com/sapcc/go-makefile-maker/internal/core/constants.go 0.00% (ø) 12 0 12
github.com/sapcc/go-makefile-maker/internal/ghworkflow/render.go 0.00% (ø) 0 0 0
github.com/sapcc/go-makefile-maker/internal/ghworkflow/workflow_helm.go 0.00% (ø) 0 0 0

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

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.

4 participants