Compartir a través de


stages.stage definition

Las fases son una colección de trabajos relacionados. De forma predeterminada, las fases se ejecutan secuencialmente. Cada fase se inicia solo después de que se complete la fase anterior, a menos que se especifique lo contrario a través de la propiedad 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.

Definiciones que hacen referencia a esta definición: fases

Propiedades

stage Cadena. Obligatorio como primera propiedad.
Identificador de la fase.

displayName Cadena.
Nombre legible para la fase.

poolpool.
El grupo en el que se ejecutarán los trabajos de esta fase, a menos que se especifique lo contrario.

dependsOn string | lista de cadenas.
Todas las fases que deben completarse antes de esta. De forma predeterminada, las fases se ejecutan secuencialmente en el orden definido en la canalización. Especifique dependsOn: [] para una fase si no debe depender de la fase anterior de la canalización.

condition Cadena.
Evalúe esta expresión de condición para determinar si se va a ejecutar esta fase.

variablesvariables.
Variables específicas de la fase.

jobstrabajos.
Trabajos que componen la fase.

lockBehavior Cadena.
Las solicitudes de bloqueo de comportamiento de esta fase deben mostrarse en relación con otras solicitudes de bloqueo exclusivas. secuencial | runLatest.

templateContext templateContext.
Información relacionada con la fase que se pasa desde una canalización al extender una plantilla. Para obtener más información sobre templateContext, vea Plantillas de canalizaciones yaML extendidas ahora se puede pasar información de contexto para fases, trabajos e implementaciones yplantillas: usar templateContext para pasar propiedades a plantillas.

Observaciones

Use comprobaciones de aprobación para controlar manualmente cuándo se debe ejecutar una fase. Estas comprobaciones se usan normalmente para controlar las implementaciones en entornos de producción.

Las comprobaciones son un mecanismo disponible para el propietario del recurso. Controlan cuándo una fase de una canalización consume un recurso. Como propietario de un recurso como un entorno, puede definir las comprobaciones necesarias antes de que se pueda iniciar una fase que consuma el recurso.

Actualmente, se admiten comprobaciones de aprobación manuales en entornos. Para obtener más información, consulte Aprobaciones.

Bloqueo exclusivo

En las canalizaciones de YAML, las comprobaciones se usan para controlar la ejecución de fases en recursos protegidos. Una de las comprobaciones comunes que puede usar es una comprobación de bloqueo exclusiva. Esta comprobación permite que solo se realice una ejecución desde la canalización. Cuando varias ejecuciones intentan implementarse en un entorno al mismo tiempo, la comprobación cancela todas las ejecuciones antiguas y permite implementar la ejecución más reciente.

Puede configurar el comportamiento de la comprobación de bloqueo exclusiva mediante la lockBehavior propiedad , que tiene dos valores:

  • runLatest - Solo la ejecución más reciente adquiere el bloqueo en el recurso. Este es el valor predeterminado si no se especifica .lockBehavior
  • sequential - Todas las ejecuciones adquieren el bloqueo secuencialmente al recurso protegido.

Cancelar ejecuciones antiguas es un buen enfoque cuando las versiones son acumulativas y contienen todos los cambios de código de las ejecuciones anteriores. Sin embargo, hay algunas canalizaciones en las que los cambios de código no son acumulativos. Al configurar la lockBehavior propiedad , puede optar por permitir que todas las ejecuciones continúen e implementen secuencialmente en un entorno, o conservar el comportamiento anterior de cancelar las ejecuciones antiguas y permitir solo lo más reciente. Un valor de sequential implica que todas las ejecuciones adquieren el bloqueo secuencialmente en el recurso protegido. Un valor de runLatest implica que solo la ejecución más reciente adquiere el bloqueo en el recurso.

Para usar la comprobación de bloqueo exclusiva con implementaciones sequential o runLatest, siga estos pasos:

  1. Habilite la comprobación de bloqueo exclusiva en el entorno (o en otro recurso protegido).
  2. En el archivo YAML de la canalización, especifique una nueva propiedad denominada lockBehavior. Esto se puede especificar para toda la canalización o para una fase determinada:

Se establece en una fase:

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

Se establece en la canalización:

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

Ejemplos

En este ejemplo se ejecuta tres fases, una después de otra. La fase intermedia ejecuta dos trabajos en 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!

En este ejemplo se ejecutan dos fases en paralelo. Por motivos de brevedad, se omiten los trabajos y los pasos.

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

Consulte también

Obtenga más información sobre las fases, las condiciones y las variables.