определение stage.stage

Этапы — это коллекция связанных заданий. По умолчанию этапы выполняются последовательно. Каждый этап начинается только после завершения предыдущего этапа, если не указано иное с помощью dependsOn свойства .

stages:
- stage: string # Required as first property. ID of the stage.
  displayName: string # Human-readable name for the stage.
  pool: string | pool # Pool where jobs in this stage will run unless otherwise specified.
  dependsOn: string | [ string ] # Any stages which must complete before this one.
  condition: string # Evaluate this condition expression to determine whether to run this stage.
  variables: variables | [ variable ] # Stage-specific variables.
  jobs: [ job | deployment | template ] # Jobs which make up the stage.
  lockBehavior: string # Behavior lock requests from this stage should exhibit in relation to other exclusive lock requests.
  templateContext: # Stage related information passed from a pipeline when extending a template.
stages:
- stage: string # Required as first property. ID of the stage.
  displayName: string # Human-readable name for the stage.
  pool: string | pool # Pool where jobs in this stage will run unless otherwise specified.
  dependsOn: string | [ string ] # Any stages which must complete before this one.
  condition: string # Evaluate this condition expression to determine whether to run this stage.
  variables: variables | [ variable ] # Stage-specific variables.
  jobs: [ job | deployment | template ] # Jobs which make up the stage.

Определения, ссылающиеся на это определение: этапы

Свойства

stage Строка. Требуется в качестве первого свойства.
Идентификатор этапа.

displayName Строка.
Понятное для человека имя этапа.

poolпул.
Пул, в котором будут выполняться задания на этом этапе, если не указано иное.

dependsOn строка | список строк.
Все этапы, которые должны быть завершены до этого. По умолчанию этапы выполняются последовательно в порядке, определенном в конвейере. Укажите dependsOn: [] для этапа, если он не должен зависеть от предыдущего этапа конвейера.

condition Строка.
Оцените это выражение условия, чтобы определить, следует ли выполнять этот этап.

variablesпеременные.
Переменные, зависящие от этапа.

jobsjobs.
Задания, составляющие этап.

lockBehavior Строка.
Запросы блокировки поведения на этом этапе должны демонстрироваться по отношению к другим монопольным запросам на блокировку. последовательный | runLatest.

templateContext templateContext.
Сведения, связанные с этапом, передаваемые из конвейера при расширении шаблона. Дополнительные сведения о templateContextсм. в разделах Расширенные шаблоны конвейеров YAML теперь можно передавать контекстные сведения для этапов, заданий и развертываний и Шаблоны — использование templateContext для передачи свойств в шаблоны.

Комментарии

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

Проверки — это механизм, доступный владельцу ресурса. Они позволяют указывать, когда этап в конвейере будет использовать ресурс. Как владелец ресурса, такого как среда, вы можете определить проверки, которые требуются перед запуском этапа, который использует ресурс.

В настоящее время в средах поддерживаются проверки утверждения вручную. Дополнительные сведения см. в разделе Утверждения.

Монопольная блокировка

В конвейерах YAML проверки используются для управления выполнением этапов на защищенных ресурсах. Одной из распространенных проверок, которую можно использовать, является монопольная блокировка проверка. Этот проверка позволяет продолжить только один запуск из конвейера. При одновременном развертывании в среде нескольких запусков проверка отменяет все старые запуски и разрешает развертывание последнего запуска.

Поведение монопольной блокировки проверка можно настроить с помощью lockBehavior свойства , которое имеет два значения:

  • runLatest — Только последний запуск получает блокировку ресурса. Это значение по умолчанию, если не lockBehavior указано.
  • sequential — все запуски последовательно блокируют защищенный ресурс.

Отмена старых запусков — хороший подход, если выпуски являются накопительными и содержат все изменения кода из предыдущих запусков. Однако существуют некоторые конвейеры, в которых изменения кода не являются накопительными. Настроив lockBehavior свойство , вы можете разрешить всем запускам продолжать и последовательно развертываться в среде или сохранить предыдущее поведение отмены старых запусков и разрешить только последние. Значение sequential означает, что все запуски последовательно получают блокировку защищенного ресурса. Значение runLatest означает, что только последний запуск получает блокировку ресурса.

Чтобы использовать монопольную блокировку проверка с sequential развертываниями или runLatest, выполните следующие действия.

  1. Включите монопольную блокировку проверка в среде (или другом защищенном ресурсе).
  2. В YAML-файле для конвейера укажите новое свойство с именем lockBehavior. Это можно указать для всего конвейера или для заданного этапа:

Установить на сцене:

stages:
- stage: A
  lockBehavior: sequential
  jobs:
  - job: Job
    steps:
    - script: Hey!

Задайте для конвейера:

lockBehavior: runLatest
stages:
- stage: A
  jobs:
  - job: Job
    steps:
    - script: Hey!

Примеры

В этом примере последовательно выполняются три этапа. На среднем этапе параллельно выполняются два задания.

stages:
- stage: Build
  jobs:
  - job: BuildJob
    steps:
    - script: echo Building!
- stage: Test
  jobs:
  - job: TestOnWindows
    steps:
    - script: echo Testing on Windows!
  - job: TestOnLinux
    steps:
    - script: echo Testing on Linux!
- stage: Deploy
  jobs:
  - job: Deploy
    steps:
    - script: echo Deploying the code!

В этом примере выполняется два этапа параллельно. Для краткости задания и шаги опущены.

stages:
- stage: BuildWin
  displayName: Build for Windows
- stage: BuildMac
  displayName: Build for Mac
  dependsOn: [] # by specifying an empty array, this stage doesn't depend on the stage before it

См. также раздел

Дополнительные сведения об этапах, условиях и переменных.