0

We are using Azure DevOps for our .NET source control. We operate projects using both the Git and TFS workflow (the former being newer work, the latter being legacy projects). This has come about because when Azure DevOps was simply TFS, we just had the 'Source' root folder, with sub folders for different types of software, and then projects within each. This works fine for the type of check in / commit process used by TFS. Now with DevOps and the Git workflow, instead of a single 'Root' repository called Source with folders breaking up the different solutions, we have different repositories representing each different software solution.

For the projects under the GIT workflow, we can use Azure pipelines confidently to create a CI/CD release process. However, I'm unsure how we can use this to work with our TFS based repository. In the Azure DevOps portal, our TFS repository - even though it contains many different solutions/projects, is represented as a single 'Project' called 'Source' in the portal.

This means that I'm unclear how to get a CI/CD pipeline to work, as we only want to build the pipeline for certain projects within that \Source project. Does anyone know how this can be achieved? If we look at the Git projects its easy, each project is separate and self contained, but \Source is made up of folders and sub-folders with projects within each. It's not one massive project that can be checked into and released from. I hope this makes sense, perhaps someone with some past experience with this 'dual workflow' type of source control in Azure DevOps could comment?

jessehouwing
  • 106,458
  • 22
  • 256
  • 341
JamesMatson
  • 2,522
  • 2
  • 37
  • 86

1 Answers1

3

You can create multiple Azure Pipelines that each look at the TFVC repository (Team Foundation Version Control). Each Pipeline is then configured with its own Mapping where you'll have to be pretty specific to grab just the files you need to build the solution for that pipeline.

You can define a Workspace Mapping using includes (map) and excludes (cloak). You can cloak individual files, but you'll have to enter their server path manually last time I checked.

enter image description here

The next step is to configure the CI filters to look at the right paths. This could be the same as your workspace mappings, but I've also seen cases where more specific filters were configured.

enter image description here

You'll end up with one or more pipelines for each Solution in the project that hosts the TFVC repository. Naming your pipelines will probably be important.

jessehouwing
  • 106,458
  • 22
  • 256
  • 341