Условие фазы выпуска VSTS, основанное на одном из множества сборок - PullRequest
0 голосов
/ 28 апреля 2018

Первая попытка автоматической сборки и непрерывного развертывания, поэтому приветствуются любые предложения и улучшения процесса.

У меня есть хранилище с разными определениями сборки. Один для каждого из следующих: проект базы данных, API и веб. (Позже будет добавлено больше для etl / reports) Каждая сборка имеет фильтр, поэтому он собирается только в том случае, если был изменен код по указанному пути.

В настоящее время у меня есть отдельные выпуски, использующие непрерывное развертывание для каждой сборки. Поэтому, когда код изменяется, он создает автоматическое развертывание. Это работает, но на самом деле не практично из-за зависимостей.

Что я собираюсь сделать, так это иметь одно определение выпуска, которое включает в себя все артефакты сборки. Затем подготовьте фазы развертывания, которые выполняются только в том случае, если был создан определенный артефакт сборки (что-то в этом проекте изменилось). Таким образом, все сборки / релизы не запускаются каждый раз, а связываются вместе при наличии связанных изменений.

Pipeline

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

VSTS Deployment Phase

1 Ответ

0 голосов
/ 28 апреля 2018

У меня есть хранилище с разными определениями сборки. Один для каждого из следующее: проект базы данных, API и веб. (Добавлю еще позже для etl / reports) Каждая сборка имеет фильтр, поэтому он собирается только при наличии кода в конкретном пути был изменен

Фильтры путей не должны использоваться в вашей ситуации.

Если вы видите Microsoft git repo ,

Они имеют всю свою кодовую базу из Windows и Devices Group (WDG) в одном большом репо. Каждая корневая папка является отдельным продуктом и совершенно не связана с остальными. (например, Xbox, HoloLens, ОС Windows и т. д.).

Фильтры путей имеют здесь смысл, потому что, если я добавляю push-код в Xbox, я не хочу, чтобы также создавался код Hololens.


Все проекты Web / DB / API должны быть собраны вместе, упакованы вместе и развернуты вместе.

Я предполагаю, что в проекте используется стек .NET.

Держите проекты БД, Web и API в одном решении. Создайте одно определение сборки, которое создает решение, и создайте несколько артефактов (dacpac, пакет webdeploy и т. Д.) , добавив несколько артефактов публикации, шаг .

См. Скриншот сборки с несколькими артефактами.

Sample build definition with multiple artifacts

Свяжите артефакты из этой сборки с определением версии, и вы сможете развернуть.

...