Nuget: Build & Release in Azure DEVOps

Alzi la mano chi non ha MAI ed intendo MAI utilizzato Nuget nei propri progetti. Dalla mia postazione non vedo nessuna mano alzata e credo di conoscere il motivo. Nuget e’ una risorsa veramente essenziale piena di pacchetti interessanti per agevolare il nostro lavoro. Vi siete mai chiesti come pubblicare un vostro componente ed entrare a fare parte dei “salvatori del mondo” conquistando una fetta di paradiso dei developer?

Io si ed ho creato il primo pacchetto dalle *Pipeline di Build & Release in Azure DevOps in maniera semplicissima grazie a questi step.

Pipeline di Build

La pipeline di build si compone di quattro step che riportero nelle seguenti tabelle e sono da eseguire in ordine. Per potere lavorare la pipeline ha bisogno di essere configurata come repository sorgenti.

TaskDisplay NameCommandPath to project(s)
.NET Coredotnet restorerestore**/*.sln
.NET Coredotnet buildbuildSolutionToBuildForNuget.sln
TaskDisplay NameCommandPath to csproj or nuspec file(s) to packConfiguration to PackagePackage Folder
.NET Coredotnet packpackSolutionToBuildForNuget.sln$(BuildConfiguration)$(Build.ArtifactStagingDirectory)
TaskDisplay NamePath to publishArtifact nameArtifact publish location
Publish build artifactsPublish Artifact: drop$(Build.ArtifactStagingDirectory)dropAzure Pipeline

Prima di passare alla prossima sezione bisogna andare nel tab Options e impostare la voce Build number format a $(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) in modo da versionare l’artifact ad ogni release.

Personalmente mi piace versionare con YYYY.MM.DD, ma questi sono gusti personali. Nei link a fondo articolo troverete configurare il numero di build a vostro piacere.

Pipeline di Release

Creando la pipeline di release dobbiamo selezionare come prima cosa l’Artifacts da utilizzare. Ovviamente selezioneremo quello generato dalla Pipeline di Build appena configurata e creata.

Ora non ci resta che aggiungere uno Stages che per semplicita’ ho chiamato Nuget ed al suo interno ho inserito un solo task

TaskDisplay NameCommandPath to NuGet package(s) to publish
NuGetNuGet pushpush<_ArtifactName>/drop/.nupkg;!<_ArtifactName>/drop/.symbols.nupkg

A questo punto mancano le ultime configurazioni sempre all’interno del task nuget push

  • Target feed location: External NuGet server (including other accounts/collections)
  • NuGet server: creare una connessione tramite la api-key fornita da nuget una volta registrata

Una volta eseguita la Pipeline di Release potrebbero passare dei minuti prima di vedere il pacchetto aggiornato sulle pagine di Nuget.

Lascia un tuo Feedback!

Hai letto l’articolo sino in fondo? Vuoi raccontare la tua esperienza? Oppure semplicemete porre un quesito? Puoi farlo tranquillamente sul mio profilo linkedin nel post Nuget: Pipeline di Build & Release tramite Azure DevOps unendoti ai commenti gia’ presenti.