Azure DevOps: 1 решение для нескольких проектов CI / CD - PullRequest
5 голосов
/ 07 марта 2019

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

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

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

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 13 марта 2019

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

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

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

1 голос
/ 07 марта 2019

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

...