Plugins

Official plugins

  • @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

Community plugins

Open a Pull Request to add your plugin to the list.

  • 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-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 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)

  • semantic-release-helm

    • verifyConditions: Validate configuration and (if present) credentials

    • prepare: Update version and appVersion in Chart.yaml

    • publish: Publish the chart to a registry (if configured)

  • 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.

  • @eshepelyuk/semantic-release-helm-oci

    • verifyConditions: Verify plugin configuration and login to Helm registry

    • prepare: Package Helm chart to local folder

    • publish: Publish Helm chart to OCI registry

  • 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 existance 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.

Last updated