Skip to content

ci(chart): publish the dploy Helm chart as a signed OCI artifact - #40

Merged
AYDEV-FR merged 1 commit into
mainfrom
feat/chart-oci-build
Jun 20, 2026
Merged

ci(chart): publish the dploy Helm chart as a signed OCI artifact#40
AYDEV-FR merged 1 commit into
mainfrom
feat/chart-oci-build

Conversation

@AYDEV-FR

@AYDEV-FR AYDEV-FR commented Jun 20, 2026

Copy link
Copy Markdown
Owner

What

Adds a dedicated Chart workflow (.github/workflows/chart.yml) that validates the Helm chart on every branch/PR and publishes it as a signed OCI artifact on release tags. Modeled on the existing docker.yml split behavior.

Why

ci.yml never touched charts/dploy, so chart regressions only surfaced at install time. And the chart wasn't distributed anywhere — users had to clone the repo. This makes the chart a first-class, signed, versioned release artifact.

Behavior

  • Every branch / PRhelm lint + helm template render + helm package smoke test.
  • On v* tags → package with version/appVersion synced to the tag, push to OCI, and cosign-sign the pushed artifact by digest (keyless, via id-token) — matching how release.yml signs the container images.

Note on the OCI path

The API image already lives at ghcr.io/aydev-fr/dploy. A chart pushed to that same path would collide with the container package (both are OCI artifacts in one namespace), so charts publish under a charts/ sub-path:

helm install dploy oci://ghcr.io/aydev-fr/charts/dploy --version X.Y.Z

Configurable via the CHART_NAMESPACE env in the workflow.

Validation

Locally verified before wiring CI: helm lint, template render, and a real helm package all pass; workflow YAML parses clean. The publish job only runs on v* tags, so merging this is inert until the next release tag is cut.

Add a dedicated Chart workflow mirroring docker.yml's split behavior:

- Every branch / PR: helm lint + template render + package smoke test, so
  chart regressions surface before a tag is cut (ci.yml didn't cover the
  chart at all).
- On v* tags: package with the version/appVersion synced to the tag, push
  to oci://ghcr.io/<owner>/charts, and cosign-sign the pushed artifact by
  digest (keyless, id-token).

Charts publish under a "charts/" path so the OCI artifact doesn't collide
with the container images already at ghcr.io/<owner>/dploy(-operator).

Install: helm install dploy oci://ghcr.io/aydev-fr/charts/dploy --version X.Y.Z

Claude-Session: https://claude.ai/code/session_01M4Dd5oASBGHwr6ts6wTnYn
@AYDEV-FR
AYDEV-FR merged commit 1d49dc9 into main Jun 20, 2026
11 checks passed
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