У меня есть решение Visual Studio с несколькими проектами, каждый проект представляет собой отдельный микросервис. Для команды разработчиков очень удобно иметь все сервисы в одном решении и git repo, так как сервисы могут вызывать друг друга.
Master.sln - SubFolderA - MicroserviceA.sln
- SubFolderB - MicroserviceB.sln
- SubFolderC - MicroserviceC.sln
Однако я хотел бы независимо собирать / выпускать отдельные микросервисы в DevOps Azure при их изменении, поэтому, если ServiceA является единственной службой, которую нужно изменить, то ServiceA является единственной службой, созданной и развернутой.
С этой целью я создал новое определение конвейера сборки с установленными «Фильтрами пути», чтобы запускать сборку при изменении содержимого папки микросервиса (поэтому один фильтр пути добавляется на каждый микросервис для мониторинга).
Моя проблема здесь заключается в том, что когда запускается сборка (на основании изменения SubFolderA, например), у меня нет возможности сказать определению сборки, что нужно только построить файл .sln в SubFolderA.
Я мог бы создать отдельное определение сборки для каждого микросервиса и запускать каждую сборку в отдельных подпапках, но это потребовало бы значительных накладных расходов, т. Е. Мне нужно было бы поддерживать 15 отдельных определений сборки (опять же, для каждой ветви, которую я строю), и хранилище, требуемое нашим агентом сборки собственного хоста, теперь будет NumberOfService x NumberOfBranchesBeingBuild x SizeOfRepo.
Есть ли способ использовать одно определение сборки с git «Фильтры пути» и несколькими заданными путями, что, в свою очередь, запускает несколько экземпляров сборки и передает значение пути, вызвавшего сборку, в определение сборки и так говорит экземпляр сборки, какой файл .sln собрать?
Надеюсь, это имеет смысл!