This directory contains CI/CD workflows for cluster-forge.
| Workflow | Trigger | Purpose |
|---|---|---|
helm-chart-checks.yaml |
pull_request |
Validates Helm charts and Kyverno policy test coverage. |
pr-component-validation.yaml |
pull_request (path-filtered), workflow_dispatch |
Validates SBOM/component sync when key files change. |
release-pipeline.yaml |
workflow_dispatch |
Calculates release version, creates prerelease artifact, and publishes SBOM. |
- Runs on PR events (
opened,synchronize,reopened,ready_for_review,converted_to_draft). - Validates
rootchart with all sizing values files (values,values_small,values_medium,values_large). - Lints and templates Kyverno policy charts.
- Enforces Kyverno test coverage (test folder,
kyverno-test.yaml, resource files, and policy mapping). - Runs
kyverno testagainst generated policy manifests. - Includes a comprehensive coverage job to ensure all charts under
sources/kyverno-policiesare included in CI.
- Runs on manual dispatch and PRs to
mainwhen these files change:sbom/components.yamlroot/values.yamlsbom/*.sh
- Installs
yqand executessbom/validate-sync.sh. - Acts as a gate to keep SBOM/component definitions consistent.
- Manual workflow with optional input:
version_override. - Job
release:- Checks out full history.
- Computes next semantic version (
ietf-tools/semver-action) unless overridden. - Warns when
scripts/bootstrap.shLATEST_RELEASEbase version does not match release base version. - Packages
root/,scripts/, andsources/intorelease-enterprise-ai-<version>.tar.gz. - Creates a GitHub prerelease with generated notes.
- Job
sbom(depends onrelease):- Generates SBOM via
sbom/generate-sbom.sh. - Renames output to
sbom-<version>-<short-sha>.md. - Uploads SBOM asset to the GitHub release with
--clobber.
- Generates SBOM via
- PR workflows perform validation only and do not publish releases.
- Use Actions -> Release Pipeline -> Run workflow to cut a release.
- Set
version_overridewhen you need a specific tag. - Keep
LATEST_RELEASEinscripts/bootstrap.shaligned with the release stream to avoid warnings.