Skip to content

Helm OCI Publish Action

A GitHub Action that automatically updates Helm chart versions, packages charts, and publishes them to OCI registries.

The Problem

As Helm charts moved to OCI registries, I found myself repeating the same workflow steps across every chart repository: update Chart.yaml with the new version, package the chart, authenticate to the registry, push it. Each repository needed this same logic, and manual version management was error-prone.

I was doing this across multiple Helm chart repositories. The workflow steps were identical - just different chart paths and registry URLs. When I needed to update the Helm version or change how dependencies were handled, I had to update every single repository.

The Solution

This action encapsulates the entire Helm chart publishing workflow into a single reusable step. You provide the chart path, registry, and version. The action handles updating Chart.yaml, packaging, authentication, and publishing.

The real value is in centralized maintenance. When I improve the action or fix a bug, every project using it benefits immediately. No hunting through repositories to update workflow files.

Quick Example

yaml
- name: Publish Helm Chart
  uses: michielvha/helm-oci-publish-action@v1
  with:
    chart-path: charts/my-chart
    registry: ghcr.io/${{ github.repository_owner }}/charts
    version: 1.0.0

The action automatically updates Chart.yaml, packages the chart, authenticates to the registry, and publishes it with the specified version.

Why This Matters

Helm charts are increasingly moving to OCI registries for better integration with GitOps tools. However, publishing charts requires multiple steps and careful version management.

This action standardizes chart publishing across projects and reduces errors from manual version management. By automating the workflow, teams can focus on chart development rather than publishing mechanics.

For detailed usage, configuration options, and examples, see the GitHub repository.