Как мне выпустить только изменения проекта из нескольких проектов в один .sln?

У меня 7 проектов в одном .sln. Я использую лазурные девопсы. Есть 4 api и 3 веб. Я создал два разных конвейера для API и Интернета. При фиксации запускаются оба конвейера.

Что я хочу....

Я хочу, чтобы проект запускал, собирал и выпускал только изменения. Если проект 1 изменяется, то только сборка и выпуск проекта 1. Другие нет.

Как мне с этим справиться?

В настоящее время для одного изменения создаются и выпускаются все проекты.


person Noor All Safaet    schedule 30.05.2020    source источник
comment
Эта проблема все еще блокирует вас? И какой конвейер вы используете, классический конвейер сборки + классический конвейер выпуска или многоступенчатый конвейер yaml как для сборки, так и для выпуска?   -  person LoLance    schedule 02.06.2020
comment
@ LanceLi-MSFT Немного настраивается в YAML, но большинство частей настраивается из пользовательского интерфейса.   -  person Noor All Safaet    schedule 02.06.2020


Ответы (2)


Во-первых, если вы хотите, чтобы конвейер запускал только проект, который вы изменяете, вам нужно создать один «конвейер-> выпуск» для каждого проекта.

Когда мне нужно что-то подобное, обычно я создаю конвейер с моим шаблоном сборки, а затем меняю параметр триггера:

Перейдите к редактированию конвейера:

введите описание изображения здесь

А затем добавьте путь к проекту, который вы хотите запустить в этот конвейер.

введите описание изображения здесь

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

Надеюсь, это сработает и для вас!

person Nacho Martínez-Aedo    schedule 30.05.2020
comment
@Aacho Martínez-Aedo Итак, я создам 7 конвейеров для каждого проекта? - person Noor All Safaet; 30.05.2020
comment
@Noor All Safaet, у вас будет по одному конвейеру для каждого проекта, если это то, что вам нужно. Или один конвейер для API и один для веб-сайтов, это зависит от того, что вы хотите. - person Nacho Martínez-Aedo; 31.05.2020
comment
@Aacho Martínez-Aedo У меня есть общая библиотека классов, что мне делать? Если я включаю путь фильтра, то срабатывает только выбранный путь, если он изменен из общих библиотек классов, что я буду делать? Если я включу путь для всех библиотек эталонных классов, я верю, что он будет работать, но эти библиотеки классов также используются в другом проекте, но такое же решение в этом случае запускаются и другие проекты? - person Noor All Safaet; 08.06.2020

Обновите свой путь включения в конвейере.

  paths:
    include:
    - /Project1FolderName/*
    - /Project2FolderName/*
person DreadedFrost    schedule 30.05.2020
comment
@Dreaedfrost, не могли бы вы объяснить? Если я добавлю путь включения, в чем будет польза? - person Noor All Safaet; 30.05.2020
comment
Пути include сообщают вашим конвейерам yaml, какой путь к файлам нужно связать с вашей сборкой. У меня будет один для ваших веб-проектов и один конвейер для ваших проектов API. Таким образом, у вас будет два конвейера с одним и тем же триггером в качестве главного, но с разными путями включения в сборки и триггеры. [Вот еще один ответ, который кто-то опубликовал] (stackoverflow.com/questions/59584717/) - person DreadedFrost; 30.05.2020