90dy/Semantic Release Github Action from 90dy
Run semantic-release in github action with same options as cli
View on GitHubTrust Signals
- Scorecard Score
- Scorecard 2–4scored Jul 13, 2026
- Maintenance Recency
- Stalelast commit Nov 7, 2023
- License
- Public domain
Pinned Snippet
uses: 90dy/gha-semantic-release@f46f76f221596fa67c6d904cc0f768bf0749b8da # v1.0.4tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| extends | Type: 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. | — | — |
| branches | Type: 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-url | Type: 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-format | Type: 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). | — | — |
| plugins | Type: 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-run | Type: 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. | — | — |
| ci | Type: 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 |
| debug | Type: 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:*'). | — | — |
Outputs
no outputs