Helm plugin for [semantic-release](https://github.com/semantic-release/semantic-release)
npm install @davidspekorg/semantic-release-helmsemantic-release plugin to publish a helm chart to a helm repository and an OCI registry.
It updates Helm chart version and appVersion in Chart.yaml.
It supports the following protocols:
- OCI
- Chart Museum
```
npm install -D @davidspekorg/semantic-release-helm
| Options | Descriptions | Required | type | Default |
|------------------------|--------------------------------------------------------|----------|---------------------------------|----------|
| chartRepository | URI for chart repository | yes* | string | none |string
| ociRegistry | URI for OCI registry | yes* | | none |Chart.yml
| chartDirectory | Chart directory where is located | no | string | . |version
| versionUpdatePolicy | Set update policy for field of Chart.yaml | no | "fixed" \| "sync" \| "desync" | "sync" |appVersion
| appVersionUpdatePolicy | Set update policy for field of Chart.yaml | no | "fixed" \| "sync" \| "desync" | "sync" |
\* At least one of ociRegistry or chartRepository is required.
Pass credentials through environment variable to login helm repository.
``
export HELM_REPOSITORY_USERNAME=
export HELM_REPOSITORY_PASSWORD=
export HELM_REGISTRY_USERNAME=
export HELM_REGISTRY_PASSWORD=
HELM_REPOSITORY_USERNAME and HELM_REPOSITORY_PASSWORD are used for chart repository login.
HELM_REGISTRY_USERNAME and HELM_REGISTRY_PASSWORD are used for OCI registry login.
If you are using oci registry and no credentials are provided, it will use the HELM_REPOSITORY_USERNAME and HELM_REPOSITORY_PASSWORD for login.
Update policy
- fixed: Use Fixed version. The version will not be updated
- sync: Use nextRelease.version. New version will be set to nextRelease.versionnextRelease.type
- desync: Version will be increased according to (one of _major_, _premajor_, _minor_, _preminor_, _patch_, _prepatch_, _prerelease_)
`json`
{
"plugins": [
[
"@davidspekorg/semantic-release-helm",
{
"chartRepository": "https://mychart.company.org/chartrepo/myproject",
"ociRegistry": "mychart.company.org/myproject",
"chartDirectory": "./chart",
"versionUpdatePolicy": "sync",
"appVersionUpdatePolicy": "fixed"
}
]
]
}
- Your chart repository is https://mychart.company.org/chartrepo/myproject and OCI registry is mychart.company.org/myproject.Chart.yaml
- is in chart sub-directoryversion
- will follow next release version and appVersion will not modified
Old version
`yaml`semantic-release version: 1.2.3
version: 1.2.3
appVersion: 2.3.1
New version - Case #1 patch
`yaml`semantic-release version: 1.2.4
version: 1.2.4
appVersion: 2.3.1
New version - Case #2 minor
`yaml`semantic-release version: 1.3.0
version: 1.3.0
appVersion: 2.3.1
New version - Case #3 major
`yaml``semantic-release version: 2.0.0
version: 2.0.0
appVersion: 2.3.1