Структура репозитория решения - функции VS Azure

Я разрабатываю 3 функции Azure под названием EmployeeAPI, StudentAPI, ProjectsAPI, каждая из которых обращается к одной и той же базе данных SQL. Мне было поручено убедиться, что каждый из проектов развертывается отдельно, независимо друг от друга (отдельный репозиторий кода для каждого).

Моя проблема в том, что есть несколько общих проектов, которые разделяют эти 3 человека, и поддерживать все 3 из них очень сложно. Если я изменил 1 элемент, скажем, столбец базы данных, мне нужно обновить его и в других проектах.

Есть ли способ, которым общий проект будет находиться в 1 репозитории, а изменения отразятся на трех проектах? Некоторые посоветовали мне создать пакет Nuget или сослаться на проект.

Это структура решения каждого проекта (упрощенная)

EmployeeAPI
ApplicationLayer (shared)
DomainLayer (shared)
InfraLayer (shared)
Tests (shared)

StudentAPI
ApplicationLayer (shared)
DomainLayer (shared)
InfraLayer (shared)
Tests (shared)


ProjectsAPI
ApplicationLayer (shared)
DomainLayer (shared)
InfraLayer (shared)
Tests (shared)

Надеюсь, я хорошо это объяснил :-D


person samantha07    schedule 24.11.2020    source источник


Ответы (2)


На самом деле перемещение общего проекта в пакет nuget - лучшее, что вы можете сделать, если хотите хранить проекты API в отдельных репозиториях. Здесь вы есть документы, показывающие, как отправлять пакеты nuget в корм.

Вы также можете переместить весь свой общий проект в 4-е репо и использовать их в качестве подмодуля в своих проектах API. Здесь вы найдете подробную информацию об использовании подмодулей в Azure DevOps.

person Krzysztof Madej    schedule 24.11.2020

Предполагая, что вы используете Azure DevOps для CI / CD, вы можете использовать фильтры пути, такие как здесь, чтобы включить / исключить все функции и общие проекты в одном репозитории. Возможно, вы сможете добиться аналогичной функциональности с помощью других инструментов CI / CD.

person Bassam Gamal    schedule 25.11.2020