GitHub Action
Helm Chart Testing
A GitHub Action for installing the helm/chart-testing CLI tool.
- A GitHub repo containing a directory with your Helm charts (e.g:
charts
) - A workflow YAML file in your
.github/workflows
directory. An example workflow is available below. For more information, reference the GitHub Help Documentation for Creating a workflow file
For more information on inputs, see the API Documentation
version
: The chart-testing version to install (default:v3.7.0
)yamllint_version
: The chart-testing version to install (default:1.27.1
)yamale_version
: The chart-testing version to install (default:3.0.4
)
Create a workflow (eg: .github/workflows/lint-test.yaml
):
Note that Helm and Python must be installed.
This can be achieved using actions as shown in the example below.
Python is required because ct lint
runs Yamale and yamllint which require Python.
name: Lint and Test Charts
on: pull_request
jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v1
with:
version: v3.9.2
- uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
if [[ -n "$changed" ]]; then
echo "::set-output name=changed::true"
fi
- name: Run chart-testing (lint)
run: ct lint --target-branch ${{ github.event.repository.default_branch }}
- name: Create kind cluster
uses: helm/[email protected]
if: steps.list-changed.outputs.changed == 'true'
- name: Run chart-testing (install)
run: ct install
This uses helm/kind-action
GitHub Action to spin up a kind Kubernetes cluster,
and helm/chart-testing
to lint and test your charts on every pull request.
v2.0.0 is a major release with breaking changes.
The action no longer wraps the chart-testing tool but simply installs it.
It is no longer run in a Docker container.
All ct
options are now directly available without the additional abstraction layer.
Participation in the Helm community is governed by the Code of Conduct.