definição stages.stage

As fases são uma coleção de tarefas relacionadas. Por predefinição, as fases são executadas sequencialmente. Cada fase só é iniciada após a conclusão da fase anterior, salvo especificação em contrário através da dependsOn propriedade.

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 referenciam esta definição: fases

Propriedades

stage cadeia. Necessário como primeira propriedade.
ID da fase.

displayName cadeia.
Nome legível por humanos para o palco.

poolconjunto.
Conjunto onde as tarefas nesta fase serão executadas, salvo especificação em contrário.

dependsOn cadeia | lista de cadeias.
Todas as fases que têm de ser concluídas antes desta. Por predefinição, as fases são executadas sequencialmente pela ordem definida no pipeline. Especifique dependsOn: [] para uma fase se não depender da fase anterior no pipeline.

condition cadeia.
Avalie esta expressão de condição para determinar se deve executar esta fase.

variablesvariáveis.
Variáveis específicas da fase.

jobstrabalhos.
Trabalhos que compõem o palco.

lockBehavior cadeia.
Os pedidos de bloqueio de comportamento desta fase devem ser apresentados em relação a outros pedidos de bloqueio exclusivos. sequencial | runLatest.

templateContext templateContext.
Informações relacionadas com a fase transmitidas a partir de um pipeline ao expandir um modelo. Para obter mais informações sobre templateContexto , veja Extended YAML Pipelines templates can now be passed context information for stages, jobs, and deployments and Templates - Use templateContext to pass properties to templates.

Observações

Utilize verificações de aprovação para controlar manualmente quando uma fase deve ser executada. Estas verificações são normalmente utilizadas para controlar implementações em ambientes de produção.

As verificações são um mecanismo disponível para o proprietário do recurso. Controlam quando uma fase num pipeline consome um recurso. Como proprietário de um recurso como um ambiente, pode definir verificações necessárias antes de uma fase que consome o recurso poder ser iniciada.

Atualmente, as verificações de aprovação manual são suportadas em ambientes. Para obter mais informações, veja Aprovações.

Bloqueio exclusivo

Nos pipelines YAML, as verificações são utilizadas para controlar a execução de fases em recursos protegidos. Uma das verificações comuns que pode utilizar é uma verificação de bloqueio exclusiva. Esta verificação permite que apenas uma única execução do pipeline prossiga. Quando várias execuções tentam implementar num ambiente ao mesmo tempo, a verificação cancela todas as execuções antigas e permite a implementação da execução mais recente.

Pode configurar o comportamento da verificação de bloqueio exclusiva com a lockBehavior propriedade, que tem dois valores:

  • runLatest - Apenas a execução mais recente adquire o bloqueio ao recurso. Este é o valor predefinido 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 as versões são cumulativas e contêm todas as alterações de código das execuções anteriores. No entanto, existem alguns pipelines em que as alterações de código não são cumulativas. Ao configurar a lockBehavior propriedade, pode optar por permitir que todas as execuções prossigam e implementem sequencialmente num 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 utilizar a verificação de bloqueio exclusiva com sequential implementações ou runLatest, siga estes passos:

  1. Ative a verificação de bloqueio exclusiva no ambiente (ou noutro recurso protegido).
  2. No ficheiro YAML do pipeline, especifique uma nova propriedade chamada lockBehavior. Isto pode ser especificado para todo o pipeline ou para uma determinada fase:

Definir num palco:

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 fases, uma após a outra. A fase intermédia 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 em paralelo. Por questões de brevidade, as tarefas e os passos 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

Ver também

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