This action extracts a list of processed Helm Charts (and their basic details) from logs generated by the ct
tool.
For more nuanced chart testing and release automation, a list of updated or to be released charts (and their basic properties like version
) are often required.
The official Helm tooling has some change-detection logic built-in, but it is either not separately exposed yet or implicitly works only in certain cases. For example:
- helm/chart-releaser-action finds charts to be released by inspecting git changes since the last tagged commit
ct list-changed
compares the current branch with a target one and is therefore of limited use outside of pull requests
Furthermore, even just looking up chart properties by name requires custom processing of Chart.yaml
files.
Some of the available tools already provide useful information about the processed charts in their logs, though. In order not to have to reinvent the related logic for more advanced use cases, these usually available logs could be parsed instead to extract reported details.
This helper action does exactly that using the logs generated by the ct lint
command.
on:
push:
branches:
- main
jobs:
validation:
runs-on: ubuntu-latest
outputs:
charts: ${{ steps.chart-list.outputs.charts }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install Helm
uses: azure/setup-helm@v4
with:
version: v3.17.0
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
check-latest: true
- name: Install chart-testing
uses: helm/chart-testing-action@v2.7.0
- name: Run chart linters and validators
run: ct lint --all > ./validation.log
- id: chart-list
name: Extract processed chart list
uses: eaasi/chart-list-action@v0.3
with:
ct-log-file: ./validation.log
consumer:
runs-on: ubuntu-latest
needs:
- validation
steps:
- name: Print extracted chart list
run: echo ${{ toJson(needs.validation.outputs.charts) }}
on:
pull_request:
branches:
- main
jobs:
validation:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install Helm
uses: azure/setup-helm@v4
with:
version: v3.17.0
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
check-latest: true
- name: Install chart-testing
uses: helm/chart-testing-action@v2.7.0
- name: Run chart linters and validators
run: ct lint > ./validation.log
- name: Check if any charts were processed
uses: eaasi/chart-list-action@v0.3
with:
ct-log-file: ./validation.log
if-no-charts-found: error
This project is licensed under the Apache-2.0 license.
Copyright (c) 2025 Yale University (unless otherwise noted).