🔧 Semantic release presets and plugins for various projects.
This is not in any way connected or related to the official semantic-release group and only maintained by me and optimized for my usage with Gitlab.
From v2 on this project contains definitions for gitlab and github. They are identically but targeting the respecting platforms.
Register the package in your package.json as followed:
...
"dependencies": {
"semantic-release-presets": "{VERSION}",
...
Currently two plugins are added:
This was forked from https://github.com/wagaru/semantic-release-teams and updated. Furthermore it was extended with ideas from https://github.com/yllieth/semantic-release-ms-teams .
If you do not want to use this plugin, but still want to use these presets you can set the environment variable
TEAMS_WEBHOOK_DISABLED
totrue
. This will skip the steps.
Inspired by https://github.com/iFaxity/semantic-release-nuget and https://gitlab.com/dmoonfire/semantic-release-nuget.
This is very specific for my own requirements. By default this is switched off.
If you do want to use the plugin, you have to set the environment variable
CUSTOM_CHANGELOG_ENABLED
totrue
.
These presets make certain assumptions regarding your project setup. Please check them carefully if they apply to your workflows. If they do not match 100% you still can get some inspiration and adjust your configuration to your needs.
Following presets can be used:
Name | Description | Category |
---|---|---|
.releaserc.full.json | Semantic release configuration with full usage configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance , full |
.releaserc.main-full.json | Semantic release configuration with full usage configured to run on main branch | main , full |
.releaserc.dev-full.json | Semantic release configuration with full usage configured to run on dev branch | dev , full |
Name | Description | Category |
---|---|---|
.releaserc.noNpmPublish.json | Semantic release configuration with full usage, but without npm publish , to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance |
.releaserc.main-noNpmPublish.json | Semantic release configuration with full usage, but without npm publish , to run on main branch |
main |
.releaserc.dev-noNpmPublish.json | Semantic release configuration with full usage, but without npm publish , to run on dev branch |
dev |
Name | Description | Category |
---|---|---|
.releaserc.deno.json | Semantic release configuration for deno configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance , deno |
.releaserc.main-deno.json | Semantic release configuration for deno configured to run on main branch | main , deno |
.releaserc.dev-deno.json | Semantic release configuration for deno configured to run on dev branch | dev , deno |
Name | Description | Category |
---|---|---|
.releaserc.dotnet.json | Semantic release configuration for dotnet configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance , dotnet |
.releaserc.main-dotnet.json | Semantic release configuration for dotnet configured to run on main branch | main , dotnet |
.releaserc.dev-dotnet.json | Semantic release configuration for dotnet configured to run on dev branch | dev , dotnet |
Name | Description | Category |
---|---|---|
.releaserc.nuget.json | Semantic release configuration for nuget configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance , nuget |
.releaserc.main-nuget.json | Semantic release configuration for nuget configured to run on main branch | main , nuget |
.releaserc.dev-nuget.json | Semantic release configuration for nuget configured to run on dev branch | dev , nuget |
Name | Description | Category |
---|---|---|
.releaserc.python.json | Semantic release configuration for python configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance , python |
.releaserc.main-python.json | Semantic release configuration for python configured to run on main branch | main , python |
.releaserc.dev-python.json | Semantic release configuration for python configured to run on dev branch | dev , python |
Name | Description | Category |
---|---|---|
.releaserc.swagger.json | Semantic release configuration with full usage, but without npm publish , configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support. An additional step to update the version in a swagger.yaml file (in root) is added |
main , dev , alpha , beta , next , maintenance , swagger |
.releaserc.main-swagger.json | Semantic release configuration with full usage, but without npm publish , configured to run on main branch. An additional step to update the version in a swagger.yaml file (in root) is added |
main , swagger |
.releaserc.dev-swagger.json | Semantic release configuration with full usage, but without npm publish , configured to run on dev branch. An additional step to update the version in a swagger.yaml file (in root) is added |
dev , swagger |
Name | Description | Category |
---|---|---|
.releaserc.full.json | Semantic release configuration with full usage configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance , full |
.releaserc.main-full.json | Semantic release configuration with full usage configured to run on main branch | main , full |
.releaserc.dev-full.json | Semantic release configuration with full usage configured to run on dev branch | dev , full |
Name | Description | Category |
---|---|---|
.releaserc.noNpmPublish.json | Semantic release configuration with full usage, but without npm publish , to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance |
.releaserc.main-noNpmPublish.json | Semantic release configuration with full usage, but without npm publish , to run on main branch |
main |
.releaserc.dev-noNpmPublish.json | Semantic release configuration with full usage, but without npm publish , to run on dev branch |
dev |
Name | Description | Category |
---|---|---|
.releaserc.deno.json | Semantic release configuration for deno configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance , deno |
.releaserc.main-deno.json | Semantic release configuration for deno configured to run on main branch | main , deno |
.releaserc.dev-deno.json | Semantic release configuration for deno configured to run on dev branch | dev , deno |
Name | Description | Category |
---|---|---|
.releaserc.dotnet.json | Semantic release configuration for dotnet configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance , dotnet |
.releaserc.main-dotnet.json | Semantic release configuration for dotnet configured to run on main branch | main , dotnet |
.releaserc.dev-dotnet.json | Semantic release configuration for dotnet configured to run on dev branch | dev , dotnet |
Name | Description | Category |
---|---|---|
.releaserc.nuget.json | Semantic release configuration for nuget configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance , nuget |
.releaserc.main-nuget.json | Semantic release configuration for nuget configured to run on main branch | main , nuget |
.releaserc.dev-nuget.json | Semantic release configuration for nuget configured to run on dev branch | dev , nuget |
Name | Description | Category |
---|---|---|
.releaserc.python.json | Semantic release configuration for python configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support |
main , dev , alpha , beta , next , maintenance , python |
.releaserc.main-python.json | Semantic release configuration for python configured to run on main branch | main , python |
.releaserc.dev-python.json | Semantic release configuration for python configured to run on dev branch | dev , python |
Name | Description | Category |
---|---|---|
.releaserc.swagger.json | Semantic release configuration with full usage, but without npm publish , configured to run on branches main and dev as well as n.x.x (maintenance) and with alpha, beta, next and maintenance support. An additional step to update the version in a swagger.yaml file (in root) is added |
main , dev , alpha , beta , next , maintenance , swagger |
.releaserc.main-swagger.json | Semantic release configuration with full usage, but without npm publish , configured to run on main branch. An additional step to update the version in a swagger.yaml file (in root) is added |
main , swagger |
.releaserc.dev-swagger.json | Semantic release configuration with full usage, but without npm publish , configured to run on dev branch. An additional step to update the version in a swagger.yaml file (in root) is added |
dev , swagger |
Based on your git knowledge and application or package release cycle, different configurations might be best suited for you:
If you are an advanced git user with rebasing and branching knowledge and maintain an npm or dotnet package, the configurations .releaserc.full.json or .releaserc.nuget.json might be beneficial for you.
They provide support for normal version publishing, pre-releases and maintenance handling.
Branches:
main
: normal version publishingdev
: beta releasesalpha
: alpha releasesN.x.x
: maintenance handling (e.g. 1.x.x handles all version 1 maintenance releases)
If you have basic git knowledge and maintain an npm or dotnet package, the configurations .releaserc.main-full.json or .releaserc.main-nuget.json might be beneficial for you.
They provide support for normal version publishing on branch main
.
If you mainain an application you can check the configurations with main
or dev
in the name. They define the branch the release will be triggered.
Most suitable should be the dev
handling. This means you develop and release on this branch and merge into main
for manual deployment.
Add it to your .releaserc.json:
{
"extends": "semantic-release-presets/presets/github/.releaserc.full.json"
}
Jonas Schubert |