stages.stage definition
Estágios são uma coleção de trabalhos relacionados. Por padrão, os estágios são executados sequencialmente. Cada fase é iniciada somente após a conclusão da fase anterior, a menos que seja especificado de outra forma por meio da propriedade 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.
Definições que fazem referência a essa definição: estágios
Propriedades
stage
String. Obrigatório como primeira propriedade.
ID do estágio.
displayName
String.
Nome legível para o estágio.
pool
pool.
Pool em que os trabalhos nesta fase serão executados, a menos que seja especificado de outra forma.
dependsOn
cadeia de caracteres | lista de cadeias de caracteres.
Todos os estágios que devem ser concluídos antes deste. Por padrão, os estágios são executados sequencialmente na ordem definida no pipeline. Especifique dependsOn: []
para um estágio se ele não deve depender do estágio anterior no pipeline.
condition
String.
Avalie essa expressão de condição para determinar se este estágio deve ser executado.
variables
variáveis.
Variáveis específicas do estágio.
jobs
trabalhos.
Trabalhos que compõem o palco.
lockBehavior
String.
As solicitações de bloqueio de comportamento desse estágio devem ser exibidas em relação a outras solicitações de bloqueio exclusivas. sequencial | runLatest.
templateContext
templateContext.
Informações relacionadas ao estágio passadas de um pipeline ao estender um modelo. Para obter mais informações sobre templateContext
, consulte Modelos de Pipelines YAML estendidos agora podem ser passados informações de contexto para estágios, trabalhos e implantações e modelos – Use templateContext para passar propriedades para modelos.
Comentários
Para obter mais informações sobre templateContext
, consulte Modelos de Pipelines YAML estendidos agora podem ser passados informações de contexto para estágios, trabalhos e implantações e modelos – Use templateContext para passar propriedades para modelos.
Use as verificações de aprovação para controlar manualmente quando uma fase deve ser executada. Essas verificações geralmente são usadas para controlar implantações em ambientes de produção.
As verificações são um mecanismo disponível para o proprietário do recurso. Eles controlam quando um estágio em um pipeline consome um recurso. Como proprietário de um recurso como um ambiente, você pode definir as verificações necessárias antes que uma fase que consome o recurso possa começar.
Atualmente, há suporte para verificações manuais de aprovação em ambientes. Para obter mais informações, confira Aprovações.
Bloqueio exclusivo
Em pipelines YAML, as verificações são usadas para controlar a execução de estágios em recursos protegidos. Uma das verificações comuns que você pode usar é um bloqueio exclusivo marcar. Esse marcar permite que apenas uma única execução do pipeline prossiga. Quando várias execuções tentam implantar em um ambiente ao mesmo tempo, o marcar cancela todas as execuções antigas e permite que a execução mais recente seja implantada.
Você pode configurar o comportamento do bloqueio exclusivo marcar usando a lockBehavior
propriedade , que tem dois valores:
runLatest
– somente a execução mais recente adquire o bloqueio para o recurso. Esse é o valor padrão se nãolockBehavior
for especificado.sequential
– todas as execuções adquirem o bloqueio sequencialmente ao recurso protegido.
Cancelar execuções antigas é uma boa abordagem quando suas versões são cumulativas e contêm todas as alterações de código das execuções anteriores. No entanto, há alguns pipelines nos quais as alterações de código não são cumulativas. Ao configurar a lockBehavior
propriedade, você pode optar por permitir que todas as execuções prossigam e implantem sequencialmente em um ambiente ou preservar o comportamento anterior de cancelar execuções antigas e permitir apenas as mais recentes. Um valor de sequential
implica que todas as execuções adquirem o bloqueio sequencialmente ao recurso protegido. Um valor de runLatest
implica que apenas a execução mais recente adquire o bloqueio para o recurso.
Para usar a verificação de bloqueio exclusivo com implantações sequential
ou runLatest
, siga estas etapas:
- Habilite a verificação de bloqueio exclusivo no ambiente (ou em outro recurso protegido).
- No arquivo YAML do pipeline, especifique uma nova propriedade chamada
lockBehavior
. Isso pode ser especificado para todo o pipeline ou para uma determinada fase:
Definir em uma fase:
stages:
- stage: A
lockBehavior: sequential
jobs:
- job: Job
steps:
- script: Hey!
Definir no pipeline:
lockBehavior: runLatest
stages:
- stage: A
jobs:
- job: Job
steps:
- script: Hey!
Exemplos
Este exemplo executa três estágios, um após o outro. O estágio intermediário executa dois trabalhos em paralelo.
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!
Este exemplo executa duas fases paralelamente. Para fins de brevidade, os trabalhos e as etapas são omitidos.
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