Как пропустить выпуск артефакта сборки в конвейере компакт-диска Azure VSTS, если нет новой версии сборки

У нас есть определение выпуска, которое предоставляет набор основных сервисов asp.net вместе с приложением Angular.

Большинство сервисов не обновляются очень часто, поэтому вопрос в том, как сравнить версию артефакта с уже развернутой в среде и пропустить, если последняя версия была развернута раньше?

У нас есть несколько сред в разработке.


person Roman Ivanashko    schedule 18.02.2019    source источник


Ответы (2)


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

root
|--app1
|--app2
etc

вы можете определить фильтры пути в вашей сборке yaml следующим образом:

trigger:
  paths:
    include:
      - app1/*
      - sharedlibs/* (if you have them)

таким образом сборка будет запускаться только в том случае, если есть какие-либо изменения в файлах в этих каталогах.

person 4c74356b41    schedule 18.02.2019
comment
Спасибо. Сборки обрабатываются. У каждого артефакта сборки есть версия. Проблема в том, что выпуск всегда собирает все артефакты, даже если изменилась только одна служба. Интересно, есть ли способ узнать, какая версия артефакта опубликована из конвейера. - person Roman Ivanashko; 18.02.2019
comment
проверьте переменные среды выпуска, в нем должна быть переменная для каждого артефакта, но мне кажется, вам нужны отдельные конвейеры выпуска для отдельных приложений - person 4c74356b41; 18.02.2019
comment
Но у нас есть одно приложение (Angular SPA), которое вызывает несколько сервисов (может быть цепочка вызовов). Таким образом, если какой-либо код службы изменился, мы запускаем сборку для конкретной службы и выпуск приложения. Но в этом выпуске будут развернуты все службы, потому что Angular является основным выпуском. Я вижу, как узнать версию артефакта. Есть ли способ узнать, какая версия сейчас развернута? Я могу позвонить в службу поддержки, чтобы получить его версию, но приложение может быть остановлено выпуском, поэтому оно может не работать. - person Roman Ivanashko; 18.02.2019

Вы можете добавить дополнительную среду выпуска для проверки текущей версии артефакта через PowerShell (например, Build.SourceVersion, отметьте переменные в выпуске), затем завершите задачу, если она уже была успешно выпущена.

Для промежуточной среды выберите параметр «После среды» и выберите предыдущую среду.

С другой стороны, поскольку вы упомянули, что большинство сервисов не обновляются очень часто, вы можете использовать предложение 4c74356b41 для фильтрации сборки, чтобы создавать и выпускать только те изменения, которые вы хотите.

person PatrickLu-MSFT    schedule 18.02.2019