GitHub Actions Workflows Overview#
This repository uses four main workflows to automate the Helm chart lifecycle and version management. The following sections provide a concise description of what each workflow does without delving into implementation details.
1. release-please.yaml#
Automates semantic versioning and release generation.
Runs on: every push to the
mainbranch or viaworkflow_dispatch.Key actions:
- Executes Release Please to scan commits, update the manifest, and create PRs/tags when required.
- Exposes outputs with the impacted charts (
paths_released) and their new versions. - If releases are detected, triggers
generate-artifact.yaml(one run per chart) through a matrix withmax-parallel: 1to build and publish artifacts.
2. generate-artifact.yaml#
Builds and publishes a Helm chart as either a release or snapshot artifact.
Invocation method: called via
workflow_callwith inputs for chart path, version, and publication type (releasesorsnapshots).Main steps:
- Retrieves a token from a GitHub App to access the private
.firestartrrepository with registry configs. - Checks out the charts repository and recursively updates dependencies using
helm dep up. - Packages the chart, determines its name and version, then uploads it to (a) an OCI registry or (b) GitHub Pages, based on the
HELM_CHARTS_PUBLICATION_TYPEvariable. - When publishing to GitHub Pages, indexes the Helm repo and pushes to the configured branch and path.
- Retrieves a token from a GitHub App to access the private
3. generate-snapshot.yaml#
Automatically generates chart snapshots during Pull Requests.
Runs on:
- Every
pull_requestevent when a PR is labeled or updated (labeled,synchronize). - Manually via
workflow_dispatch, allowing the user to specify a chart.
- Every
What it does:
- Detects charts modified in the PR.
- Calls
generate-artifact.yamlwithrelease_type: snapshotsto build and upload a snapshot version to the designated registry.
4. pr-verify.yaml#
Validates chart changes before a Pull Request is merged.
Runs on: every PR that touches
charts/**or manually viaworkflow_dispatch.Validation tasks:
- Scope Check — blocks PRs that modify more than one chart at a time.
- Dependency Update — refreshes Helm dependencies, including local and remote subcharts.
- Linting & Template — executes
helm lint --strictand renders templates for inspection. - Yamllint — runs
yamllinton rendered output and posts results in a persistent comment using sticky‑pull‑request‑comment. - Fails the workflow if lint errors are found.
Summary Flow#
Push to
main→release-please.yamldecides if new releases are required.For each chart needing a release →
generate-artifact.yamlpublishes the new version.Pull Request cycle:
pr-verify.yamlvalidates the PR and leaves feedback.- If on‑demand testing is needed,
generate-snapshot.yamlbuilds and uploads a snapshot.