As a company, we are creating NuGet packages from various git repo's in Azure DevOps. Once a package is tested and approved it should be shared within the Azure DevOps organization.
I am struggling still with the setup of the build/release pipeline by using Azure DevOps feeds. Packages should become available for testing first before it gets shared in the organization.
Although there are a lot of recommendations and best practices shared by Microsoft, I still can't find a workable solution. I will explain the solutions I have tried so far:
Using one feed where for the entire organization. Packages are automatically pushed to the @local feed and pushed to the @prerelease and @release view once testing is done. The pipeline is used as follows:
Issues Solution A:
Using a dedicated feed for each git repository (recommended by Microsoft) and publish NuGet packages to this feed from the CI builds. Each package is sent to the @local feed without any suffix. When a package is tested and accepted the package is promoted to the @release view. Each dedicated feed is configured as upstream source (@release view), the packages from the release view will be 'cached' in the common feed shared in the organization among all development teams.
Issues Solution B:
I know there are a lot of questions but I am struggling for quite some time now with this issue. I hope someone can provide me with some good suggestions.
Thanks!
Navigate to your classic pipeline definition, and then select Edit. Select + to add a new task. Search for NuGet, and then select Add to add the task to your pipeline. Name your task and select Restore from the Command.
Select Build and Release > Packages. Select your feed from the dropdown menu or create one if you haven't. Select Connect to feed. Select NuGet and follow the instruction to connect to your feed.
Create a release pipelineGo to the Pipelines tab, and then select Releases. Select the action to create a New pipeline. If a release pipeline is already created, select the plus sign ( + ) and then select Create a release pipeline. Select the action to start with an Empty job.
In this articleUse DevOps Starter to create a CI/CD pipeline. Configure access to your GitHub repo and choose a framework. Configure Azure DevOps and an Azure subscription. Commit changes to GitHub and automatically deploy them to Azure.
What I do is in my build pipeline I build a pre-release and a release package and save them both to my artefacts.
In my release pipeline I publish the pre-release package to a local cache, once I am ready for UAT I approve the release to UAT and this publishes it as a pre-release package. Upon completion of UAT it gets approved for release to release which publishes the release package.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With