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 компонента, которые вы упомянули, а в релизе вы развернете их, я надеюсь, что ответил на ваш вопрос