How should I setup a basic Azure Devops CICD pipeline, given a mono repo that has projects for a web ui and a handful of service fabric service projects? I want the ability to build once, then run a test command with a filter to only specific unit tests. The rest of the tests need to be run once everything is deployed to an environment (later stages of the pipeline). I am unusure how to structure the build, package and test step(s)
I have a good idea of what I need to end up with, but not sure quite how to get there in Azure Devops, and not sure if things like DotNetCoreCLI task, with a "test" command, will use existing dlls in the pipeline, or will build those projects again in order to test them?
The result I want after the "commit" stage is a drop that contains a folder per entity (UI, Service, etc.) where each folder contains everything needed to host/deploy that specific item.
I can work out how to iterate over those folders and actually deploy as necessary, I'm just stuck on what I should actually build? My options as I see it:
- Single All.sln that contains every project (along with their references)
- csproj files of the specific deliverables (assuming all their references will also get build and included in the output)
- Each csproj and sfproj in isolation and some way to group together everything that I need in the deployment folders
I do want to build/deploy all aspects of the system on a given run of the CICD pipeline.
Thanks!