1.3.2 • Published 1 year ago
semantic-release-net v1.3.2
semantic release net
Semantic release plugin to publish .NET packages to NuGet sources. Performs the following actions:
- verifyConditions: Checks if the default nuget token (
NUGET_TOKEN
) is set, or if sources are set, if the corresponding tokens are set. - prepare: Creates the NuGet packages using
dotnet pack
with the corresponding new version and release notes. - publish: Publishes the NuGet packages to the configured NuGet sources.
Packages are created in their corresponding bin/$(Configuration)/
folder.
To enable / disable package creation, you can set the <IsPackable>true</IsPackable>
option in the .csproj
file.
Configuration
If no sources are configured, the NUGET_TOKEN
env var must be set.
The default nuget source (https://api.nuget.org/v3/index.json
) is used in this case.
Options
configuration
: The configuration to use fordotnet pack
(default:Release
)pack
: Whether the plugin should rundotnet pack
(default:true
)additionalPackArgs
: Array of strings to pass as additional arguments todotnet pack
additionalPublishArgs
: Array of strings to pass as additional arguments todotnet nuget push
sources
: Array of sources to publish to. Each source must have the following properties:url
: The url of the sourceapiKeyEnvVar
: The name of the environment variable that contains the API key for the source
// Type definition of the plugin options
export type PluginConfig = {
configuration?: 'Release' | 'Development';
pack?: boolean;
additionalPackArgs?: string[];
sources?: { url: string; apiKeyEnvVar: string }[];
additionalPublishArgs?: string[];
};
Configuration example when using default nuget
// .releaserc.json example
{
"plugins": [
[
"semantic-release-dotnet",
{
"configuration": "Release",
"pack": true,
"additionalPackArgs": ["/property:PackageIcon=icon.png"],
"additionalPublishArgs": ["--skip-duplicates"]
}
]
]
}
Configuration example when specifying sources
// .releaserc.json example
{
"plugins": [
[
"semantic-release-dotnet",
{
// key/value config of the other example...
"sources": [
{
"url": "https://api.nuget.org/v3/index.json",
"apiKeyEnvVar": "NUGET_TOKEN"
},
{
"url": "https://nuget.pkg.github.com/buehler/index.json",
"apiKeyEnvVar": "GH_NUGET_TOKEN"
}
]
}
]
]
}