90dy/Semantic Release Github Action from 90dy

Run semantic-release in github action with same options as cli

View on GitHub

Trust Signals

Scorecard Score
Scorecard 2–4scored Jul 13, 2026
Maintenance Recency
Stalelast commit Nov 7, 2023
License
Public domain

Pinned Snippet

workflow.ymlSHA-pinned
uses: 90dy/gha-semantic-release@f46f76f221596fa67c6d904cc0f768bf0749b8da # v1.0.4

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
extendsType: Array, String CLI arguments: -e, --extends List of modules or file paths containing a [shareable configuration](https://semantic-release.gitbook.io/semantic-release/usage/shareable-configurations). If multiple shareable configurations are set, they will be imported in the order defined with each configuration option taking precedence over the options defined in a previous shareable configuration. Note: Options defined via CLI arguments or in the configuration file will take precedence over the ones defined in any shareable configuration.
branchesType: Array, String, Object Default: ['+([0-9])?(.{+([0-9]),x}).x', 'master', 'next', 'next-major', {name: 'beta', prerelease: true}, {name: 'alpha', prerelease: true}] CLI arguments: --branches The branches on which releases should happen. By default semantic-release will release: regular releases to the default distribution channel from the branch master regular releases to a distribution channel matching the branch name from any existing branch with a name matching a maintenance release range (N.N.x or N.x.x or N.x with N being a number) regular releases to the next distribution channel from the branch next if it exists regular releases to the next-major distribution channel from the branch next-major if it exists pre-releases to the beta distribution channel from the branch beta if it exists pre-releases to the alpha distribution channel from the branch alpha if it exists Note: If your repository does not have a release branch, then semantic-release will fail with an ERELEASEBRANCHES error message. If you are using the default configuration, you can fix this error by pushing a master branch. Note: Once semantic-release is configured, any user with the permission to push commits on one of those branches will be able to publish a release. It is recommended to protect those branches, for example with [Github protected branches](https://docs.github.com/github/administering-a-repository/about-protected-branches). See [Workflow configuration](https://semantic-release.gitbook.io/semantic-release/usage/workflow-configuration#workflow-configuration) for more details. yes
repository-urlType: String Default: repository property in package.json or [git origin url](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) CLI arguments: -r, --repository-url The git repository URL. Any valid git url format is supported (See [Git protocols](https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols)).
tag-formatType: String Default: v${version} CLI arguments: -t, --tag-format The [Git tag](https://git-scm.com/book/en/v2/Git-Basics-Tagging) format used by semantic-release to identify releases. The tag name is generated with [Lodash template](https://lodash.com/docs#template) and will be compiled with the version variable. Note: The tagFormat must contain the version variable exactly once and compile to a [valid Git reference](https://git-scm.com/docs/git-check-ref-format#_description).
pluginsType: Array Default: ['@semantic-release/commit-analyzer', '@semantic-release/release-notes-generator', '@semantic-release/npm', '@semantic-release/github'] CLI arguments: -p, --plugins Define the list of plugins to use. Plugins will run in series, in the order defined, for each [steps](https://semantic-release.gitbook.io/semantic-release/#release-steps) if they implement it. Plugins configuration can defined by wrapping the name and an options object in an array. See [Plugins configuration](https://semantic-release.gitbook.io/semantic-release/usage/plugins#plugins) for more details.
dry-runType: Boolean Default: false if running in a CI environment, true otherwise CLI arguments: -d, --dry-run The objective of the dry-run mode is to get a preview of the pending release. Dry-run mode skips the following steps: prepare, publish, addChannel, success and fail. In addition to this it prints the next version and release notes to the console. Note: The Dry-run mode verifies the repository push permission, even though nothing will be pushed. The verification is done to help user to figure out potential configuration issues.
ciType: Boolean Default: true CLI arguments: --ci / --no-ci Set to false to skip Continuous Integration environment verifications. This allows for making releases from a local machine. Note: The CLI arguments --no-ci is equivalent to --ci false. true
debugType: Boolean Default: false CLI argument: --debug Output debugging information. This can also be enabled by setting the DEBUG environment variable to semantic-release:*. Note: The debug is used only supported via CLI argument. To enable debug mode from the JS API use require('debug').enable('semantic-release:*').

no outputs