A GitHub action to turn a GitHub project into a self-hosted Helm chart repo, using helm/chart-releaser CLI tool.
- A GitHub repo containing a directory with your Helm charts (eg:
/charts
) - A GitHub project Secret named
CR_TOKEN
with the value of a GitHub personal access token- The token must have
repo
scope - The token's user must have write access to the project
- To mitigate risk you may wish to limit the token to a single project by creating a machine user
- Please note the personal access token is required because of an Actions bug, and will hopefully be unnecessary in the future
- The token must have
- Create a workflow
.yml
file in your.github/workflows
directory. An example workflow is available below. For more information, reference the GitHub Help Documentation for Creating a workflow file
For more information on inputs, see the API Documentation
version
: The chart-releaser version to use (default: v1.0.0-beta.1)charts_dir
: The charts directorycharts_repo_url
: The GitHub Pages URL to the charts repo (default:https://<owner>.github.io/<project>
)
Create a workflow (eg: .github/workflows/release.yml
):
name: Release Charts
on:
push:
branches:
- master
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Run chart-releaser
uses: helm/[email protected]
env:
CR_TOKEN: "${{ secrets.CR_TOKEN }}"
This uses @helm/chart-releaser-action to turn your GitHub project into a self-hosted Helm chart repo.
It does this – during every push to master
– by checking each chart in your project, and whenever there's a new chart version, creates a corresponding GitHub release named for the chart version, adds Helm chart artifacts to the release, and creates or updates an index.yaml
file with metadata about those releases, which is then hosted on GitHub Pages
Participation in the Helm community is governed by the Code of Conduct.