Skip to content

Plugins

Extend semantic-release with official and community plugins for publishing, notifications, and more.

@semantic-release/commit-analyzer

Note: This is already part of semantic-release and does not have to be installed separately

analyzeCommits
Determine the type of release by analyzing commits with conventional-changelog.

@semantic-release/release-notes-generator

Note: This is already part of semantic-release and does not have to be installed separately

generateNotes
Generate release notes for the commits added since the last release with conventional-changelog.

@semantic-release/github

Note: This is already part of semantic-release and does not have to be installed separately

verifyConditions
Verify the presence and the validity of the GitHub authentication and release configuration.
publish
Publish a GitHub release.
success
Add a comment to GitHub issues and pull requests resolved in the release.
fail
Open a GitHub issue when a release fails.

@semantic-release/npm

Note: This is already part of semantic-release and does not have to be installed separately

verifyConditions
Verify the presence and the validity of the npm authentication and release configuration.
prepare
Update the package.json version and create the npm package tarball.
publish
Publish the package on the npm registry.

@semantic-release/gitlab

verifyConditions
Verify the presence and the validity of the GitLab authentication and release configuration.
publish
Publish a GitLab release.

@semantic-release/git

verifyConditions
Verify the presence and the validity of the Git authentication and release configuration.
prepare
Push a release commit and tag, including configurable files.

@semantic-release/changelog

verifyConditions
Verify the presence and the validity of the configuration.
prepare
Create or update the changelog file in the local project repository.

@semantic-release/exec

verifyConditions
Execute a shell command to verify if the release should happen.
analyzeCommits
Execute a shell command to determine the type of release.
verifyRelease
Execute a shell command to verifying a release that was determined before and is about to be published.
generateNotes
Execute a shell command to generate the release note.
prepare
Execute a shell command to prepare the release.
publish
Execute a shell command to publish the release.
success
Execute a shell command to notify of a new release.
fail
Execute a shell command to notify of a failed release.

@semantic-release/apm

verifyConditions
Verify the presence of the ATOM_ACCESS_TOKEN environment variable and the apm CLI.
prepare
Update the package.json version with npm version.
publish
Publish the Atom package.

semantic-release-slack-bot

verifyConditions
Verify that the environment variable SLACK_WEBHOOK has been defined.
success
Publish a message about the success to a slack channel.
fail
Optionally publish a message about failure to a slack channel.

semantic-release-docker

verifyConditions
Verify that all needed configuration is present and login to the Docker registry.
publish
Tag the image specified by name with the new version, push it to Docker Hub and update the latest tag.

@semantic-release-plus/docker

verifyConditions
Verify that all needed configuration is present and login to the configured docker registry.
publish
Tag the image specified by name with the new version and channel and push it to the configured docker registry.
addChannel
Updates a release published on one channel with the destinations channel tag and pushes to the registry i.e.: next to latest.

semantic-release-gcr

verifyConditions
Verify that all needed configuration is present and login to the Docker registry.
publish
Tag the image specified by name with the new version, push it to Docker Hub and update the latest tag.

semantic-release-vsce

verifyConditions
Verify the presence and the validity of the "VS Code extension" authentication and release configuration.
prepare
Create a .vsix for distribution.
publish
Publish the package to the Visual Studio Code marketplace.

semantic-release-verify-deps

verifyConditions
Check the dependencies format against a regexp before a release.

semantic-release-openapi

verifyConditions
Verify apiSpecFiles is specified with at least one file name and all matching files have a .json, .yaml, or .yml extension.
prepare
Write the correct version to all OpenAPI / Swagger files specified in apiSpecFiles.

semantic-release-chrome

verifyConditions
Verify the presence of the authentication (set via environment variables).
prepare
Write the correct version to the manifest.json and creates a zip file of the whole dist folder.
publish
Uploads the generated zip file to the webstore, and publish the item.

semantic-release-firefox-add-on

verifyConditions
Verify that all required options are present and authentication is set via environment variables.
prepare
Write the correct version to the manifest.json.
publish
Creates an unsigned .xpi file, and submits it to the Mozilla Add On store for signing. Once the package is signed, downloads the signed .xpi to a local directory.

semantic-release-gerrit

generateNotes
Generate release notes with Gerrit reviews URL.

semantic-release-expo

verifyConditions
Verify Expo manifest(s) are readable and valid.
prepare
Update version, ios build number and android version code in the Expo manifest(s).

maven-semantic-release

verifyConditions
Verifies that the pom.xml file and other files exist and are setup to allow releases.
verifyRelease
Checks and warns (does not error by default) if the version numbers found on maven central and within the Git project differ by quite a bit.
prepare
Changes the version number in the pom.xml (or all pom.xml files in maven projects with multiple pom.xml files) and optionally creates a commit with this version number and pushes it to master.
publish
Runs mvn deploy to deploy to maven central and optionally will update to next snapshot version and merge changes to development branch.

maven-semantic-release (alternative)

Alternative version

verifyConditions
Verifies that the mvn command exists.
prepare
Changes version number in pom.xml and optionally in all child modules.
publish
Runs one of the mvn targets deploy, package jib:build or deploy jib:build.
success
Optionally sets new snapshot version and commits it.

semantic-release-ado

prepare
Stores the version number as an Azure DevOps pipeline variable available to downstream steps on the job.

gradle-semantic-release

verifyConditions
Verify that project has a Gradle wrapper script, and build.gradle contains a task to publish artifacts.
prepare
Changes the version number in the gradle.properties.
publish
Triggers Gradle to publish artifacts.

semantic-release-circleci-orb

verifyConditions
Verify the presence of the CIRCLECI_API_TOKEN environment variable, orbName option, and the circleci CLI.
publish
Publish the CircleCI orb.

semantic-release-github-pages

verifyConditions
Verify the presence of the auth token set via environment variables.
publish
Pushes commit to the documentation branch.

semantic-release-github-pullrequest

verifyConditions
Verify the presence and the validity of the GitHub authentication and other configuration.
publish
Create a branch to upload all assets and create the pull request on the base branch on GitHub.

leiningen-semantic-release

verifyConditions
Checks the project.clj is syntactically valid.
prepare
Update the project.clj version and package the output jar file.
publish
Publish the jar (and generated Maven metadata) to a maven repository (or clojars).

@saithodev/semantic-release-gitea

verifyConditions
Verify the presence and the validity of the authentication and the assets option configuration.
publish
Publish a Gitea release, optionally uploading file assets.
addChannel
Update a Gitea release's pre-release field.

semantic-release-replace-plugin

prepare
Replace version strings in files using regex and glob.

semantic-release-rubygem

verifyConditions
Locate and validate a .gemspec file, locate and validate a lib/**/version.rb file, verify the presence of the GEM_HOST_API_KEY environment variable, and create a credentials file with the API key.
prepare
Update the version in the lib/**/version.rb version file and build the gem.
publish
Push the Ruby gem to the gem server.

semantic-release-npm-deprecate-old-versions

verifyConditions
Validates configuration.
publish
Deprecates old versions, based on the declaration of supported versions in the config.

amanda-mitchell/semantic-release-npm-multiple

Note: This is a thin wrapper around the built-in npm plugin that can target multiple registries

verifyConditions
Verify the presence and the validity of the npm authentication and release configuration for multiple registries.
prepare
Update the package.json version and create the npm package tarball.
publish
Publish the package on the npm registry for multiple registries.

semantic-release-license

Automatically update dates and more in your license file for new releases

verifyConditions
Verify the presence of a license file.
prepare
Update the license file based on its type.

semantic-release-pypi

verifyConditions
Verify the environment variable PYPI_TOKEN and installation of build tools.
prepare
Update the version in setup.cfg and create the distribution packages.
publish
Publish the python package to a repository (default: pypi).

@covage/semantic-release-poetry-plugin

verifyConditions
Verify the presence and validity of pyproject.toml file.
prepare
Update the version in pyproject.toml.

semantic-release-codeartifact

verifyConditions
Validate configuration, get AWS CodeArtifact authentication and repository, validate publishConfig or .npmrc (if they exist), then pass the configuration to the associated plugins.

semantic-release-telegram

verifyConditions
Validate configuration and verify TELEGRAM_BOT_ID and TELEGRAM_BOT_TOKEN.
success
Publish a message about the successful release to a telegram chat.
fail
Publish a message about failure to a telegram chat.

semantic-release-heroku

verifyConditions
Validate configuration and verify HEROKU_API_KEY.
prepare
Update the package.json version and create release tarball.
publish
Publish version to heroku.

semantic-release-mattermost

verifyConditions
Verify that the webhook is setup and release-notes-generator is present.
success
Send a message about the new release and its notes to a mattermost webhook.

semantic-release-github-milestones

verifyConditions
Verify github tokens are present and valid.
verifyRelease
Display information regarding the matching github milestone.

semantic-release-telegram-bot

verifyConditions
Validate configuration and verify TELEGRAM_BOT_TOKEN and package name.
success
Publish a success message to certain telegram chats.
fail
Publish a fail message to certain telegram chats.

semantic-release-npm-deprecate

publish
Automatically mark old versions as deprecated.

semantic-release-mirror-version

prepare
Update the version number in any file that matches the defined file glob.

semantic-release-space

verifyConditions
Verifies that all required options are set.
prepare
Creates a JetBrains Space Deployment Target if it does not yet exist.
publish
Starts a JetBrains Space Deployment.
success
Marks the JetBrains Space Deployment as completed.
fail
Marks the JetBrains Space Deployment as failed.

semantic-release-react-native

verifyConditions
Validate configuration.
prepare
Version native iOS and Android files.

semantic-release-cargo

verifyConditions
Validate configuration, Cargo.toml, and local cargo executable. Also, logs in into crates.io.
prepare
Write the new version number into Cargo.toml file and perform cargo check if configured.
publish
Publish the Rust crate to crates.io.

semantic-release-coralogix

verifyConditions
Verified that required credentials are provided and API is accessible.
publish
Add a release tag to Coralogix.

semantic-release-jira-notes

verifyConditions
Validate the config options.
generateNotes
Generate the release notes with links to JIRA issues.

semantic-release-major-tag

success
Create major version tag, for example v1.

semantic-release-yarn

Note: This is an alternative to the default @semantic-release/npm plugin and adds support for monorepos

verifyConditions
Verify Yarn 2 or higher is installed, verify the presence of a NPM auth token (either in an environment variable or a .yarnrc.yml file) and verify the authentication method is valid.
prepare
Update the package.json version and create the package tarball.
addChannel
Add a tag for the release.
publish
Publish to the npm registry.

semantic-release-pub

verifyConditions
Verify the presence of the pub.dev authentication and release configuration.
prepare
Update the pubspec.yaml version.
publish
Publish the package onto the pub.dev registry.

semantic-release-hackage

verifyConditions
Verify the environment variable HACKAGE_TOKEN.
prepare
Update the version of .cabal file and create the distribution package (.tar).
publish
Publish the release candidate to the specified repository in Hackage.

semantic-release-pull-request-analyzer

verifyConditions
Verify configuration options and existence of GitHub token.
analyzeCommits
Determine the type of release by analyzing merged GitHub pull requests and their labels.
generateNotes
Generates release notes using GitHub release notes generator.

semantic-release-commits-lint

analyzeCommits
Analyzing commit messages by commitlint.

semantic-release-kaniko

verifyConditions
Verify that all needed configuration is present and login to the Docker registry.
publish
Build a container image using Kaniko and (optionally) push it to a Docker registry.

semantic-release-skopeo

verifyConditions
Verify that all needed configuration is present and check if destination is writeable (unless force=true).
publish
Copy OCI images to a custom (Docker) registry using daemonless open-source tool skopeo.

sr-uv-plugin

verifyConditions
Ensures pyproject.toml exists and contains a [project] section.
prepare
Updates the [project].version field in pyproject.toml to match the release version.

semantic-release-uv

verifyConditions
Verify the presence and validity of a PYPI_TOKEN and validate the pyproject.toml structure.
prepare
Update the version in pyproject.toml, locking and build the distribution with uv.
publish
Publish the package to PyPI or a custom index using uv publish.

@jno21/semantic-release-github-commit

Note: This plugin creates a commit on GitHub using the GitHub API, enabling signed commits via a GitHub App

verifyConditions
Verify GitHub authentication and configuration.
prepare
Create a commit with the specified files using the GitHub API.

semantic-release-minecraft

verifyConditions
Verify that all needed configuration is present.
prepare
Convert different types of CurseForge game versions to their corresponding IDs.
publish
Publish the Minecraft project to CurseForge and Modrinth.