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.
pool
pool.
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.
variables
variables.
Variables específicas de la fase.
jobs
trabajos.
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
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.
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:
- Habilite la comprobación de bloqueo exclusiva en el entorno (o en otro recurso protegido).
- 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.