В наших репозиториях есть папки, код в папке иногда зависит от кода в других папках, но только в одном направлении. Для объяснения:
C зависит от B
B зависит от A
У нас есть 3 сборки, необходимые для нашей политики Pull Request для мастера:
У нас есть сборка (BuildC), которая собирает ТОЛЬКО папку C
У нас есть сборка (BuildB), которая строит B и C
У нас есть сборка (BuildA), которая строит A, B и C
В политике указано:
Изменения в папке C требуют BuildC
Изменения в папке B требуют BuildB
Изменения в папке A требуют BuildA
Желаемый эффект: в зависимости от случая я хочу, чтобы запрос на включение требовал ТОЛЬКО ОДНОЙ из трех сборок. Вот случаи:
BuildA - должен запускаться, когда есть изменения в папке A (даже если есть изменения в другом месте)
BuildB - должен запускаться, когда есть изменения в B (и / или C), но НЕ В A. Если есть изменения в папке A, эта сборка НЕ должна запускаться
BuildC - должен запускаться, когда единственные изменения находятся в папке C ... если изменения существуют в папке A и / или B в дополнение к C ... эта сборка не должна запускаться.
На самом деле происходит следующее: если вы что-то измените в папке A и C, запустятся две сборки: BuildA и BuildC ... и если изменения в папке C зависят от папки A, то сборка BuildC завершится ошибкой. В любом случае запуск buildC бесполезен.
Есть ли способ, чтобы в очереди Azure DevOps была только 1 сборка ... но самая лучшая. Итак, в нашем примере BuildA будет запускаться, но не BuildC ... но если бы изменения были только в папке C, он бы запустил Build C?