@pubgcorp/semantic-release-helm
v1.4.4
Published
Helm plugin for [semantic-release](https://github.com/semantic-release/semantic-release)
Downloads
861
Keywords
Readme
semantic-release-helm
semantic-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:
Install
npm install -D @pubgcorp/semantic-release-helm
Configuration
| Options | Descriptions | Required | type | Default |
|------------------------|--------------------------------------------------------|----------|---------------------------------|----------|
| chartRepository | URI for chart repository | yes* | string
| none
|
| ociRegistry | URI for OCI registry | yes* | string
| none
|
| chartDirectory | Chart directory where Chart.yml
is located | no | string
| .
|
| versionUpdatePolicy | Set update policy for version
field of Chart.yaml | no | "fixed" \| "sync" \| "desync"
| "sync"
|
| appVersionUpdatePolicy | Set update policy for appVersion
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=<USERNAME>
export HELM_REPOSITORY_PASSWORD=<PASSWORD>
export HELM_REGISTRY_USERNAME=<USERNAME>
export HELM_REGISTRY_PASSWORD=<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.
About versionUpdatePolicy & appVersionUpdatePolicy
Update policy
- fixed: Use Fixed version. The version will not be updated
- sync: Use
nextRelease.version
. New version will be set tonextRelease.version
- desync: Version will be increased according to
nextRelease.type
(one ofmajor
,premajor
,minor
,preminor
,patch
,prepatch
,prerelease
)
Example
{
"plugins": [
[
"@pubgcorp/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 ismychart.company.org/myproject
. Chart.yaml
is inchart
sub-directoryversion
will follow next release version andappVersion
will not modified
Old version
# semantic-release version: 1.2.3
version: 1.2.3
appVersion: 2.3.1
New version - Case #1 patch
# semantic-release version: 1.2.4
version: 1.2.4
appVersion: 2.3.1
New version - Case #2 minor
# semantic-release version: 1.3.0
version: 1.3.0
appVersion: 2.3.1
New version - Case #3 major
# semantic-release version: 2.0.0
version: 2.0.0
appVersion: 2.3.1