As a .NET developer you probably use NuGet everyday, or something from it.
What is NuGet?
NuGet is the package manager for .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers.
This is great for consuming other peoples libraries, even your own, if they can be public, but there are times you may wish to have a Private feed. Luckily there are options. One is hosting it yourself on your Azure Dev Ops (ADO) instance.
To do this create a new Project:
Then create a new Repo:
Click on the "Artifacts" tab
old https://[TENANT].visualstudio.com/[PROJECT]/_packaging?_a=feed&feed=[FEEDNAME]
new https://[TENANT].azure.com/[PROJECT]/_packaging?_a=feed&feed=[FEEDNAME]
Click "+ Create Feed".
Give it a "Name", set it's Visibility as you might only allow certain Users in the Org to see it, and decide if you want to include "Upstream sources".
Next we can create a Pipeline.
PipeLines
Create a new Pipeline:
trigger:
- master
pool:
vmImage: '[CHOOSE]'
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
- task:
[TODO]
You can decide which branches will trigger the pipeline to run.
You can pick an image to run your build on.
Next there is a publish step you can use, on the right hand side of the page there will either be a "Show assistant" button or a column of tasks.
Search for "NuGet"
Command: "push"
Path to NuGet package(s) to publish: "\((Build.ArtifactStagingDirectory)/**/*.nupkg;!\)(Build.ArtifactStagingDirectory)/*/.symbols.nupkg"
Target feed location: This organization/collection
Target feed: Choose from a picker.
- task: NuGetCommand@2
inputs:
command: "push"
packagesToPush: "$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg"
nuGetFeedType: "internal"
publishVstsFeed: "[GUID]"
The publishVstsFeed
can either be a GUID or the name of the feed. When using the GUI it usually adds the underlying Guid.
I've skipped the other tasks needed, your code would need to be Built then packed etc.