Pushes an entire directory of Helm Charts to a ChartMuseum instance.
This Github Action is a fork of goodsmileduck's helm push action.
This fork varies in that rather than pushing just a singular helm chart, it will push all of the charts in the given ${SOURCE_DIR}
.
Thus if you are using a GitHub Repository to manage all of your helm charts in one place, you can use this Github Action to automate pushing all of your charts with a very simple CI configuration.
You can also manage multiple Chart repositories (e.g. stable
and incubator
) from the same GitHub repository and use this Action to publish each.
Place in a .yml
file such as this one in your .github/workflows
folder. Refer to the documentation on workflow YAML syntax here.
name: release incubator charts
on:
push:
branches:
- master
paths:
- 'incubator/**'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: linkpoolio/helm-repo-pusher@v3
env:
SOURCE_DIR: './incubator'
FORCE: 'True'
CHARTMUSEUM_URL: 'https://chartmuseum.url'
CHARTMUSEUM_USER: '${{ secrets.CHARTMUSEUM_USER }}'
CHARTMUSEUM_PASSWORD: ${{ secrets.CHARTMUSEUM_PASSWORD }}
The following settings must be passed as environment variables as shown in the example. Sensitive information, especially CHARTMUSEUM_USER
and CHARTMUSEUM_PASSWORD
, should be set as encrypted secrets — otherwise, they'll be public to anyone browsing your repository.
Key | Value | Suggested Type | Required |
---|---|---|---|
CHARTMUSEUM_URL |
Chartmuseum url | env |
Yes |
CHARTMUSEUM_USER |
Username for chartmuseum | secret |
Yes |
CHARTMUSEUM_PASSWORD |
Password for chartmuseum | secret |
Yes |
SOURCE_DIR |
The local directory you wish to upload. For example, ./charts . Defaults to the root of your repository (. ) if not provided. |
env |
Yes |
FORCE |
Force chart upload (in case version exist in chartmuseum, upload will fail without FORCE ). Defaults is False if not provided. |
env |
No |
- v2: helm v2.17.0
- v3: helm3 v3.3.1
This project is distributed under the MIT license.