Можно ли сохранить агент сборки, размещенный на Azure, между этапами конвейера? - PullRequest
1 голос
/ 03 июля 2019

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

Мой конвейер выглядит примерно так:

trigger:
- master

stages:
- stage: Build_stage
  jobs:
  - job: Build_job
    pool:
      vmImage: 'ubuntu-latest'
    steps:
    - task: InstallSomeTool@
    - script: invoke someTool
    - script: run some test

- stage: Teardown_stage
  condition: always()
  jobs:
  - job: Teardown_job
    pool:
      vmImage: 'ubuntu-latest'
    steps:
    - script: invoke SomeTool --cleanup

Стадия разрыва завершается неудачно, потому что это совершенно новый агент, который ничего не знает о состоянии, созданном предыдущим сценарием вызова someTool.

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

1 Ответ

0 голосов
/ 03 июля 2019

Возможно ли, чтобы агент сборки на хосте Azure сохранялся между этапами конвейера?

Нет, вы не можете.Размещенный агент все случайным образом назначается сервером.Вы не можете использовать какой-либо сценарий или команду для указания конкретного.

Поскольку вы сказали, что Build_Stage создаст некоторые ресурсы извне, так что вы хотите выполнить clean up для его очистки.

Фактически, для этого вы можете выполнить эту команду clean up как последние шаги в Build_Stage.В этом случае использование размещенного или частного агента не повлияет на то, что вы хотите.

...