У меня есть сценарий с двумя цепочками сборки в VSTS.
У меня есть сборка CI под названием ' Синхронизация VSTS с GitHub ', которая выполняется в два этапа:
Команда powershell, которая передает изменения из этого коммита в GitHub.
Запуск другой сборки, которая компилирует решение, запускает тесты, развертывания и т. Д. (Назовем это « Правильная сборка »)
Этот Синхронизирует VSTS с GitHub build имеет триггер, который определяет, когда был сделан push .
Это выполняет все ОК.
Во второй сборке ' Proper Build ' не определены триггеры CI . Предполагается, что он запускается только вручную (или, скорее, сборкой «Синхронизация VSTS с GitHub»).
В результате каждый раз, когда в Visual Studio выполняется push, вызывается сборка ' Sync VSTS to GitHub '. Это успешно, а затем вызывает Правильное построение . И по какой-то причине эта сборка ставится в очередь дважды для одной и той же ревизии!
Эта вторая сборка добавляется после короткого запуска первой:
Внезапно появляется дикая сборка:
Единственное различие, которое я вижу между сборками, - это пользователь, от имени которого запускается сборка:
Первая сборка:
Вторая сборка:
Что особенно странно, этого не происходит, когда сборка ставится в очередь вручную из VSTS (без нового набора изменений). В таком случае каждая сборка запускается один раз.
Задача сборки, которая вызывает Правильную сборку :
https://marketplace.visualstudio.com/items?itemName=benjhuser.tfs-extensions-build-tasks
Вот как я его настраиваю (я пытался установить для выделенного параметра другое значение, без эффекта).
Для подтверждения - если эта задача отключена , то Proper Build ' вообще не запускается (как и ожидалось)
Есть идеи, как избежать этого дублирования?