Skip to main content

NuGet

The NuGet template contains two deploy stage. It is used to publish .NET packages to a registry.

Getting started

Add the following to your .gitlab-ci.yml

gitlab-ci.yml
include:
- project: "abfelbaum/ci"
file: "templates/dotnet/nuget.yml"

nuget:deploy:local:
extends: .nuget:deploy:local

Configure .NET project

It is recommended that you make use of the environment variables provided by GitLab to configure your package.

When you use my release pipeline you can safely use the following snippet

YourProject.csproj

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<IsPackable>true</IsPackable>
<PackageVersion>$(CI_COMMIT_TAG)</PackageVersion>
<PackageProjectUrl>$(CI_PROJECT_URL)</PackageProjectUrl>
<RepositoryUrl>$(CI_REPOSITORY_URL)</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageReleaseNotes>$(CI_COMMIT_MESSAGE)</PackageReleaseNotes>
</PropertyGroup>
</Project>

Deploy to local NuGet registry

To deploy to the local NuGet registry that comes with GitLab use the .nuget:deploy:local template.

gitlab-ci.yml
include:
- project: "abfelbaum/ci"
file: "templates/dotnet/nuget.yml"

nuget:deploy:local:
extends: .nuget:deploy:local

Configuration

The template inherits all configuration options from base.

Deploy to NuGet.org

To deploy to the NuGet.org use the .nuget:deploy template.

.gitlab-ci.yml
include:
- project: "abfelbaum/ci"
file: "templates/dotnet/nuget.yml"

nuget:deploy:local:
extends: .nuget:deploy

Configuration

The template inherits all configuration options from base.

Additionally the following has to be configured

VariableDefault valueDescription
NUGET_TOKENnone, this is requiredThe api key from NuGet.org