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.

poolpool.
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.

variablesvariáveis.
Variáveis específicas do estágio.

jobstrabalhos.
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

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ão lockBehavior 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:

  1. Habilite a verificação de bloqueio exclusivo no ambiente (ou em outro recurso protegido).
  2. 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

Confira também

Saiba mais sobre fases, condições e variáveis.