Сборка VSTS срабатывает дважды при каждом нажатии - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть сценарий с двумя цепочками сборки в VSTS.

У меня есть сборка CI под названием ' Синхронизация VSTS с GitHub ', которая выполняется в два этапа:

  1. Команда powershell, которая передает изменения из этого коммита в GitHub.

  2. Запуск другой сборки, которая компилирует решение, запускает тесты, развертывания и т. Д. (Назовем это « Правильная сборка »)

Этот Синхронизирует VSTS с GitHub build имеет триггер, который определяет, когда был сделан push . Это выполняет все ОК.

Во второй сборке ' Proper Build ' не определены триггеры CI . Предполагается, что он запускается только вручную (или, скорее, сборкой «Синхронизация VSTS с GitHub»).

В результате каждый раз, когда в Visual Studio выполняется push, вызывается сборка ' Sync VSTS to GitHub '. Это успешно, а затем вызывает Правильное построение . И по какой-то причине эта сборка ставится в очередь дважды для одной и той же ревизии!
Эта вторая сборка добавляется после короткого запуска первой:

enter image description here

Внезапно появляется дикая сборка: enter image description here

Единственное различие, которое я вижу между сборками, - это пользователь, от имени которого запускается сборка:

Первая сборка: enter image description here

Вторая сборка: enter image description here

Что особенно странно, этого не происходит, когда сборка ставится в очередь вручную из VSTS (без нового набора изменений). В таком случае каждая сборка запускается один раз.

Задача сборки, которая вызывает Правильную сборку : https://marketplace.visualstudio.com/items?itemName=benjhuser.tfs-extensions-build-tasks

Вот как я его настраиваю (я пытался установить для выделенного параметра другое значение, без эффекта). enter image description here

Для подтверждения - если эта задача отключена , то Proper Build ' вообще не запускается (как и ожидалось)

Есть идеи, как избежать этого дублирования?

1 Ответ

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

Ну, ответ на самом деле прост:

  1. Избавиться от задачи «триггера»
  2. Создайте триггер завершения сборки в «Правильной сборке», как показано ниже:

enter image description here

Вот и все!

...