Azure DevOps: 1 решение для нескольких проектов CI/CD

Я только начал настраивать Azure DevOps с помощью CI/CD. Это может быть невозможно, но я надеюсь найти ответы.

У меня есть решение с 6 проектами:

  • Проект Web Api (ссылки на проекты инфраструктуры, репозиториев и моделей)
  • Проект веб-сайта (вызывает веб-API для данных и ссылок на проекты инфраструктуры, репозитория и моделей)
  • Проект Node.js (только вызывает Web Api для данных)
  • Инфраструктурный проект (общий для Web Api и Website)
  • Проект репозитариев (совместно используется Web Api и Website)
  • Проект Models (совместно используется Web Api и Website)

Прежде чем приступить к поиску публикации проектов Web Api, Website и Node.js в их собственной службе приложений Azure в определениях CI / CD:

Можно ли настроить его так, чтобы разворачивались только определенные проекты? То есть: проект Node.js публикуется только или публикуются только веб-API и веб-сайт, но не Node.js.

Или мне нужно держать вещи в разных решениях?

Если я оставлю их в отдельных решениях, как это повлияет на общие проекты (Инфраструктура, Репо и Модели) применительно к Source Control (Git)? Если я добавлю код в Модели и Репо в решении Web Api, я передам эти изменения, а не репо Web Api Git? Как это влияет на другие проекты, которые ссылаются на те же модели и проекты репо? Это где подмодули Git вступают в игру?

Обновление 1 (2019/3/8)

Похоже, я смогу добиться этого в одном решении, используя фильтры пути ( https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops). Все еще заинтересованы в любом дальнейшем вкладе.

2 ответа

Решение

Надеясь, что это помогает другим:

Я решил это с помощью фильтров Path на Build определение и работает без нареканий. Я создал 1 определение сборки для проекта, который должен жить или где-то размещаться (в моем примере у меня есть 3 Build определения: Web Api, Website, Node.js).

При правильном пути к проекту в фильтре Path только правильные Builds раскручиваться, и любые нетронутые проекты не запускают сборку. У каждой сборки есть своя release который затем развертывает указанное приложение в собственном месте назначения.

Посмотрите, правильно ли я понимаю ваш вопрос, вам нужно развернуть определенные встроенные детали. Да, вы можете сделать это в Azure DevOps. В DevOps Azure у вас есть определение сборки и конвейер выпуска. В сборке вы создадите проекты и опубликуете только 2 компонента, которые вы упомянули, а в релизе вы развернете их, я надеюсь, что ответил на ваш вопрос

Другие вопросы по тегам