Как вручную запустить одно задание в конвейерах Azure? - PullRequest
3 голосов
/ 01 февраля 2020

У меня есть простой Azure конвейер, содержащий две стадии:

  • Этап 1: сборка
  • Этап 2: Выполнение тестов

Этап 1 создает исходный код и переносит двоичные файлы в Azure Artifacts. Этап 2 загружает двоичные файлы этапа 1 и запускает для них несколько тестов, используя разные задания для разных тестов:

  • Задание 1: запуск тестов для модуля A
  • Задание 2: запуск тестов для модуля B
  • Задание 3: Выполнить тесты для модуля C

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

Если все этапы и задания успешны, как я могу вручную запустить задание 3 на этапе 2 без повторного запуска этапов 1 и заданий 1 и 2 этапа 2?

Один неприятный обходной путь может заключаться в использовании переменных и каким-то образом запустить новый конвейер, пропустите этап 1, если переменные установлены, и загрузите двоичные файлы из предыдущего конвейера. Существуют ли более подходящие подходы?

Редактировать: В сообществе разработчиков MS есть похожие топи c: https://developercommunity.visualstudio.com/idea/697467/manually-triggered-stages-in-yaml-multi-stage-pipe.html?childToView=903723#comment -903723

Ответы [ 2 ]

1 голос
/ 02 февраля 2020

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

Как только вы это сделаете, вы можете вручную запустить их независимо для повторного запуска. enter image description here

Или, если у вас возникла необходимость, вы также можете начать новый прогон только с подмножеством этапов. enter image description here

0 голосов
/ 04 февраля 2020

Если вы определите конвейер выпуска в yaml, вы можете, добавив condition: false, отключить / пропустить задание в конвейере с несколькими заданиями.

- job: Foo  
  condition: false

Для получения дополнительной информации вы можете обратиться к этому case .

Затем вы можете выбрать, какие этапы запускать при запуске многоступенчатого конвейера, с помощью этого вы можете пропустить Stage1.

enter image description here

...