Использование шлюзов и утверждений для управления развертыванием

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | Team Foundation Server 2018

Примечание

В Microsoft Team Foundation Server (TFS) 2018 и предыдущих версий конвейеры сборки и выпуска называются определениями, выполнения называются сборками, подключения к службам называются конечными точками служб, этапы называются средами, а задания называются этапами.

используя сочетание утверждений по развертыванию вручную, шлюзов и ручного вмешательства в конвейер выпуска, вы можете быстро и легко настроить развертывание в соответствии со всеми требованиями к предварительному развертыванию для рабочего процесса DevOps CI/CD.

В рамках этого учебника вы ознакомитесь со следующими сведениями:

  • Шлюзы перед развертыванием
  • ручное вмешательство;
  • Проверка вручную
  • Журналы развертывания

Предварительные требования

Настройка шлюзов

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

  1. Выберите выпуски, а затем выберите конвейер выпуска, а затем измените , чтобы открыть редактор конвейера.

    Изменение конвейера выпуска

  2. Выберите значок перед развертыванием для своего этапа, чтобы открыть панель условия перед развертыванием, а затем выберите выключатель, чтобы включить шлюзы.

    Включить шлюзы

  3. Введите время задержки до оценки добавленных шлюзов. На этот раз можно разрешить инициализацию и стабилизация функций шлюза перед возвратом результатов.

    Время задержки шлюзов

  4. Нажмите кнопку Добавить, а затем выберите задачу запрос рабочих элементов .

    Добавление задачи "рабочие элементы запроса"

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

    Настройка задачи «запрос рабочих элементов»

  6. Выберите раздел параметры оценки , а затем укажите время ожидания и интервал выборки. Минимальное количество допустимых значений — 6 минут, интервал выборки — 5 минут.

    Установка параметров оценки

  7. По завершении нажмите кнопку сохранить .

    Сохранение конвейера выпуска

Настройка ручного вмешательства

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

  1. Выберите конвейер выпуска, а затем щелкните задачи и выберите свой этап.

    Задачи этапа

  2. Щелкните многоточие (...) в определении своего этапа, а затем выберите Добавить задание без агента.

    Добавление задания без агента

    Примечание

    Задачу ручного вмешательства можно использовать только в безагентных заданиях.

  3. Перетащите задание без агента в начало процесса развертывания. Выберите + знак и щелкните Добавить задачу ручного вмешательства.

    Добавление задачи ручного вмешательства

  4. Настройте задачу, введя инструкции, которые будут отображаться при запуске задачи.

    Настройка задачи "вмешательство вручную"

    Можно указать список пользователей, которые будут уведомлены, когда развертывание ожидает утверждения вручную. Кроме того, можно указать время ожидания и действие (утвердить или отклонить), которое происходит, если вмешательство не было в течение периода ожидания. Дополнительные сведения см. в задаче вмешательство вручную .

  5. По завершении нажмите кнопку сохранить .

Настройка ручной проверки

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

waitForValidationЗадание приостанавливает выполнение и запускает запрос в пользовательском интерфейсе конвейера для просмотра и проверки задачи. Адреса электронной почты перечислены в поле notifyUsers Получение уведомления для утверждения или отклонения выполнения конвейера.

Добавьте проверку для конвейера, чтобы продолжить.

pool: 
   vmImage: ubuntu-latest

jobs:
- job: waitForValidation
  displayName: Wait for external validation  
  pool: server    
  timeoutInMinutes: 4320 # job times out in 3 days
  steps:   
   - task: ManualValidation@0
     timeoutInMinutes: 1440 # task times out in 1 day
     inputs:
         notifyUsers: |
            someone@example.com
         instructions: 'Please validate the build configuration and resume'
         onTimeout: 'resume'

Просмотр журналов развертывания

Журналы развертывания могут быть очень полезны при отладке проблем развертывания. Кроме того, журналы можно использовать для аудита выполнения и проверки утверждений, а также их предоставления и.

  1. Выберите выпуски, а затем выберите конвейер выпуска.

    Сводка по выпуску

  2. В этом представлении отображается активное состояние каждого этапа в конвейере. На этапе контроля качества в этом примере ожидается вмешательство. Выберите возобновить.

    Ожидаемое вмешательство этапа

  3. Введите комментарий и нажмите кнопку возобновить .

    Возобновить задачу

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

    Утверждение перед развертыванием активировано для следующего этапа

  5. Выберите утвердить , введите комментарий и нажмите кнопку утвердить , чтобы продолжить развертывание.

    Утвердить развертывание

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

    состояние: обработка шлюзов

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

    Просмотр журналов

Следующий шаг