определение 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
переменные.
Переменные, зависящие от этапа.
jobs
jobs.
Задания, составляющие этап.
lockBehavior
Строка.
Запросы блокировки поведения на этом этапе должны демонстрироваться по отношению к другим монопольным запросам на блокировку. последовательный | runLatest.
templateContext
templateContext.
Сведения, связанные с этапом, передаваемые из конвейера при расширении шаблона. Дополнительные сведения о templateContext
см. в разделах Расширенные шаблоны конвейеров YAML теперь можно передавать контекстные сведения для этапов, заданий и развертываний и Шаблоны — использование templateContext для передачи свойств в шаблоны.
Комментарии
Дополнительные сведения о templateContext
см. в разделах Расширенные шаблоны конвейеров YAML теперь можно передавать контекстные сведения для этапов, заданий и развертываний и Шаблоны — использование templateContext для передачи свойств в шаблоны.
Используйте проверки утверждения , чтобы вручную управлять выполнением этапа. Эти проверки обычно используются для управления развертываниями в рабочих средах.
Проверки — это механизм, доступный владельцу ресурса. Они позволяют указывать, когда этап в конвейере будет использовать ресурс. Как владелец ресурса, такого как среда, вы можете определить проверки, которые требуются перед запуском этапа, который использует ресурс.
В настоящее время в средах поддерживаются проверки утверждения вручную. Дополнительные сведения см. в разделе Утверждения.
Монопольная блокировка
В конвейерах YAML проверки используются для управления выполнением этапов на защищенных ресурсах. Одной из распространенных проверок, которую можно использовать, является монопольная блокировка проверка. Этот проверка позволяет продолжить только один запуск из конвейера. При одновременном развертывании в среде нескольких запусков проверка отменяет все старые запуски и разрешает развертывание последнего запуска.
Поведение монопольной блокировки проверка можно настроить с помощью lockBehavior
свойства , которое имеет два значения:
runLatest
— Только последний запуск получает блокировку ресурса. Это значение по умолчанию, если неlockBehavior
указано.sequential
— все запуски последовательно блокируют защищенный ресурс.
Отмена старых запусков — хороший подход, если выпуски являются накопительными и содержат все изменения кода из предыдущих запусков. Однако существуют некоторые конвейеры, в которых изменения кода не являются накопительными. Настроив lockBehavior
свойство , вы можете разрешить всем запускам продолжать и последовательно развертываться в среде или сохранить предыдущее поведение отмены старых запусков и разрешить только последние. Значение sequential
означает, что все запуски последовательно получают блокировку защищенного ресурса. Значение runLatest
означает, что только последний запуск получает блокировку ресурса.
Чтобы использовать монопольную блокировку проверка с sequential
развертываниями или runLatest
, выполните следующие действия.
- Включите монопольную блокировку проверка в среде (или другом защищенном ресурсе).
- В 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
См. также раздел
Дополнительные сведения об этапах, условиях и переменных.