Semantic-release plugin to publish Helm charts
npm install semantic-release-helm-git-chartsemantic-release plugin to publish Helm charts.
[![Latest version][npm-version-badge]][npm-package]
[![License][license-badge]][license]
[![Downloads][npm-downloads-badge]][npm-package]
[![Total Downloads][npm-total-downloads-badge]][npm-package]
| Step | Description |
| ------------------ | --------------------------------------------------------- |
| verifyConditions | Verify required configuration and login to Helm registry. |
| prepare | Update version and/or appVersion in _Chart.yaml_. |
| publish | Publish Helm chart to registry. |
> NOTE: This is a fork of semantic-release-helm with added support
> for ChartMuseum repositories such as Harbor by utilizing
> the helm cm-push plugin. It also supports helm versions >=3.7.0 and pre-release branches.
This is a plugin for _semantic-release_. It updates version and appVersion of a Helm chart's
_Chart.yaml_.
The version and appVersion are updated according to nextRelease.version.
Updating the appVersion is optional and can be disabled by setting onlyUpdateVersion to true.
``bash`
npm install semantic-release-helm3 -D
path has been renamed to chartPath to prevent config conflicts.
##### Examples:
`txt`
version 0.1.0
appVersion 1.16.0
1. patch (1.16.0 -> 1.16.1)
New chart version is 0.1.1
2. minor (1.16.0 -> 1.17.0)
New chart version is 0.2.0
3. major (1.16.0 -> 2.0.0)
New chart version is 1.0.0
| Parameter | Type | Default | Required | Description |
| ------------------- | --------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| chartPath | string | "" | true | Chart directory, where the _Chart.yaml_ is located. |registry
| | string | "" | false | URI of a container registry. |onlyUpdateVersion
| | boolean | false | false | Don't change appVersion if this is true. Useful if your chart is in a different git repo than the application. |crPublish
| | boolean | false | false | Enable chart-releaser publishing. |crConfigPath
| | string | "" | false | Path to .ct.yaml chart-releaser configuration file. |isChartMuseum
| | boolean | false | false | Enable ChartMuseum publishing. |populateChangelog
| | boolean | false | false | Populate artifacthub.io/changes annotations with notes produced by @semantic-release/release-notes-generator compatible plugins. |skipRegistryLogin
| | boolean | false | false | Skip the helm registry login command in the verifyConditions step. |packageArgs
| | string | "" | false | Additional parameters for the helm package command, e.g. --key mykey --keyring ~/.gnupg/secring.gpg |cmPushArgs
| | string | "" | false | Additional parameters for the helm cm-push command (only relevant if isChartMuseum is set to true) e.g. --context-path /repo/path |
Set chart path
`sh`
export CHART_PATH=
Pass credentials through environment variables accordingly:
`sh`
export REGISTRY_HOST=
export REGISTRY_USERNAME=
export REGISTRY_PASSWORD=
For S3 pass the AWS credentials as environment variables:
`sh`
export AWS_REGION=
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
This will update version and appVersion in ./chart/Chart.yamllocalhost:5000/repo/chart
and push the chart to . The image will be tagged with the value of version from
_Chart.yaml_.
`js`
{
"plugins": [
[
"semantic-release-helm3",
{
chartPath: './chart',
registry: 'localhost:5000/repo/chart'
}
]
]
}
The helm cm-push plugin adds support for ChartMuseum
repositories such as Harbor.
This will push the chart to the specified repository, e.g. https://mydomain.com/chartrepo/myproject andversion
tag the chart with the value of from _Chart.yaml_.
It is important to set isChartMuseum to true and to specify the repository url as registry.
Note: It is required to have at least helm version 3.7.0 installed.
`js`
{
"plugins": [
[
"semantic-release-helm3",
{
chartPath: './chart',
registry: 'https://mydomain.com/chartrepo/myproject',
isChartMuseum: true
}
]
]
}
The helm-s3 plugin adds support for S3. Check the documentation for additional
options
This will update version in ./chart/Chart.yamls3://my-s3-bucket/s3-prefix
and push the chart to . The image will be tagged with the value of version from
_Chart.yaml_.
`js``
{
"plugins": [
[
"semantic-release-helm3",
{
chartPath: './chart',
registry: 's3://my-s3-bucket-repo/s3-prefix',
onlyUpdateVersion: true,
}
]
]
}
[license]: https://github.com/nflaig/semantic-release-helm/blob/master/LICENSE
[npm-package]: https://www.npmjs.com/package/semantic-release-helm3
[npm-version-badge]: https://img.shields.io/npm/v/semantic-release-helm3.svg?style=flat-square
[npm-downloads-badge]: https://img.shields.io/npm/dw/semantic-release-helm3.svg?label=Downloads&style=flat-square&color=blue
[npm-total-downloads-badge]: https://img.shields.io/npm/dt/semantic-release-helm3.svg?label=Total%20Downloads&style=flat-square&color=blue
[license-badge]: https://img.shields.io/github/license/nflaig/semantic-release-helm.svg?color=blue&label=License&style=flat-square