GitHub Actions#
This repository runs a single Continuous Integration(CI) workflow that lints, versions, and publishes the CORTEX Helm chart and its documentation.
Tip
This repository does not deploy CORTEX to any Kubernetes cluster or cloud
environment. Deployment is handled entirely by the
cortex-meta repository, which
consumes the Helm chart released here. The only automation in this repository
is the ci.yaml pipeline described below.
CI Pipeline#
The ci.yaml workflow runs on every push and pull request. On pushes to the
main branch it additionally cuts a release and publishes the chart and
documentation. Its jobs are:
lintrun the pre-commit hooks (YAML, shell, GitHub Actions, and Python checks) across the repository.releaseuse commitizen to compute the next semantic version from the Conventional Commits history, bumppyproject.tomlandChart.yaml, update the changelog, and tag the release.githubcreate the corresponding GitHub release.docsbuild the versioned Sphinx documentation site.ghpagespublish the documentation to GitHub Pages.pdfbuild a single-file PDF of the documentation and attach it to the release.chartpackage the Helm chart with chart-releaser and publish it to the chart repository hosted on GitHub Pages, so consumers canhelm repo add cortex https://cortex.rdctdev.us.
Only lint runs on feature branches and pull requests; the release, publishing,
and packaging jobs run on main only, and only after a release is cut.
Private Repository Access#
Guidance
GitHub Actions workflows MUST use temporary credentials with read access to the private GitHub repositories sourced by the build.
The lint job authenticates to the private repositories it needs with a
short-lived GitHub App token rather than long-lived credentials, which limits
the scope of a possible supply-chain attack.