8000 GitHub - eaasi/chart-list-action: GitHub Action for extracting details about processed charts from chart-testing logs
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

eaasi/chart-list-action

Repository files navigation

Chart List Action

This action extracts a list of processed Helm Charts (and their basic details) from logs generated by the ct tool.

Motivation

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.

Examples

Extract a list of processed charts

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) }}

Check if any charts were processed

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

License

This project is licensed under the Apache-2.0 license.

Copyright (c) 2025 Yale University (unless otherwise noted).

About

GitHub Action for extracting details about processed charts from chart-testing logs

Resources

License

Stars

Watchers

Forks

0