One of the challenges faced by most of the projects is to keep up-to-date Nuget version for source code. It can be time consuming process and a repetitive job to update the version manually. Also, when we use private Nuget packages from Azure Artifacts as Nuget feed into our project, and we are frequently modifying those packages version, in that case maintainability becomes a headache due to dependency.
This article demonstrates how can we automate NuGet Package updates for a project in Azure DevOps CI pipeline.
We will use NuKeeper free extension run from a CI pipeline in Azure DevOps to automate this process to a large extent.
Nukeeper is a .net CLI tool that can be used for updating Nuget packages It will automatically change your package versions and create a pull request with the new changes. Also, we can automatically validate code by pre-merging and building pull request changes as part of build validation.
Let’s see below step-by-step implementation,
STEP 1 – Installation of NuKeeper
We will install Nukeeper extension from Organization settings in Azure Devops. Browse the marketplace and select Nukeeper.
STEP 2 – Set Repositories permission from Project Settings
Certain permission needs to be allowed for project build service to create branch and create a PR. Go to Project Settings -> All Repositories -> Security and allow Contribute, contribute to pull request, and create branch. Make sure that Create tag and read options are allowed.
STEP 3 – Setup a new CI Pipeline
We will create a new CI pipeline using classic editor for Nukeeper.
At this point, we just choose the default empty job template. Now check this option Allow scripts to access the OAuth token.
STEP 4 - Add NuKeeper task in CI Pipeline
Add “NuKeeper” as task and select the Azure Artifacts feed.
Nukeeper arguments are one of the important params. For example, if we don’t want a specific package to be upgraded, we can mention like --exclude Microsoft.EntityFrameworkCore
For more arguments, please refer here.
Now Save the pipeline.
STEP 5 – Test and Scheduling Checks
Now we can run the pipeline. It will create PR for each package that are upgrading the version.
Under the Triggers tab we can set a schedule as to when to run the pipeline.
Awesome! We have seen how we can use NuKeeper and Azure Pipelines to automate the process of updating NuGet packages. Hope you found this article useful.
Happy Learning!