CI — Helm
Runs helm lint and an optional helm template dry-run across one or more charts. Catches chart errors and render failures before deployment.
Usage
yaml
jobs:
ci:
uses: KevinDeBenedetti/github-workflows/.github/workflows/ci-helm.yml@main
with:
chart-paths: 'charts/*'
run-template: trueInputs
| Input | Type | Default | Description |
|---|---|---|---|
run-lint | boolean | true | Run helm lint on all charts |
chart-paths | string | 'charts/*' | Space-separated chart directory paths (supports globs) |
helm-version | string | v3.17.0 | Helm version to install |
lint-strict | boolean | false | Fail on lint warnings as well as errors (passes --strict) |
run-template | boolean | false | Run helm template dry-run on all charts to catch render errors |
template-values | string | '' | Optional path to a values file used during helm template |
Steps
- (helm-lint, if
run-lint) Checkout → Install Helm →helm linteach chart (--strictwhen enabled) - (helm-template, if
run-template) Checkout → Install Helm →helm dependency update+helm template --generate-nameeach chart
Notes
- A directory counts as a chart only when it contains a
Chart.yaml. If no matching charts are found, the job exits with an error. - The
helm-lintandhelm-templatejobs are independent and gated byrun-lint/run-templaterespectively. helm dependency updatefailures during the template dry-run are ignored (|| true) so charts without resolvable dependencies still render.