Provide a bunch of custom plugins for semantic-release
.
# install using npm
npm install --save-dev @amille/semantic-release-plugins
# or using yarn
yarn add -D @amille/semantic-release-plugins
You may automatically build and push docker.
Add the plugin @amille/semantic-release-plugins/dockerize
to your .releaserc
file.
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@amille/semantic-release-plugins/dockerize"
]
}
And finally you may either configure it using environment variables
Variable name | Mandatory | Description |
---|---|---|
DOCKER_REGISTRY | Docker registry (ex: hub.domain.co ) |
|
DOCKER_IMAGE | ✔️ | Image name (ex: hello-world ) |
DOCKER_LOGIN | Username for docker login | |
DOCKER_PASSWORD | Password for docker login | |
DOCKER_FILE | Dockerfile |
Or configure it using plugin configuration. The environment variable will be used as fallback.
{
"plugins": [
[
"@amille/semantic-release-plugins/dockerize",
{
"registry": "hub.domain.co",
"image": "my-image",
"dockerfile": "other.Dockerfile"
}
]
]
}
You may use plugin settings to inject the version as build arg
{
"plugins": [
[
"@amille/semantic-release-plugins/dockerize",
{
"argVersion": "VERSION"
}
]
]
}
You may automatically update the appVersion
in a helm chart file.
Add the plugin @amille/semantic-release-plugins/updateHelmChart
to your .releaserc
file.
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@amille/semantic-release-plugins/updateHelmChart",
{
"chart": "./chart/Chart.yaml"
}
]
]
}
You may automatically create archives.
Add the plugin @amille/semantic-release-plugins/archive
to your .releaserc
file.
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@amille/semantic-release-plugins/archive",
{
"output": "./archive.zip",
"assets": ["path/to/file", "glob/pattern/*.js", { "pattern": "path/dir", "relative": "path/" }],
"globOptions": {}
}
]
]
}
You may automatically create sentry releases (this plugins requires the cli client to be available).
Add the plugin @amille/semantic-release-plugins/sentryRelease
to your .releaserc
file.
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@amille/semantic-release-plugins/sentryRelease",
{
"project": "my-project",
"sourcemaps": ["build/"],
}
]
]
}