Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un desencadenador programado especifica una programación en la que se compilan las ramas.
schedules:
- cron: string # Required as first property. Cron syntax defining a schedule in UTC time.
displayName: string # Optional friendly name given to a specific schedule.
branches: # Branch names to include or exclude for triggering a run.
include: [ string ] # List of items to include.
exclude: [ string ] # List of items to exclude.
batch: boolean # Whether to run the pipeline if the previously scheduled run is in-progress; the default is false.
always: boolean # Whether to always run the pipeline or only if there have been source code or pipeline settings changes since the last successful scheduled run. The default is false.
schedules:
- cron: string # Required as first property. Cron syntax defining a schedule in UTC time.
displayName: string # Optional friendly name given to a specific schedule.
branches: # Branch names to include or exclude for triggering a run.
include: [ string ] # List of items to include.
exclude: [ string ] # List of items to exclude.
always: boolean # Whether to always run the pipeline or only if there have been source code or pipeline settings changes since the last successful scheduled run. The default is false.
Definiciones que hacen referencia a esta definición: programaciones
Propiedades
cron
cadena. Obligatorio como primera propiedad.
sintaxis cron que define una programación en hora UTC.
displayName
cadena.
Nombre descriptivo opcional asignado a una programación específica.
branches
includeExcludeFilters.
nombres de rama que se van a incluir o excluir para desencadenar una ejecución.
batch
booleano .
La propiedad batch
configura si se debe ejecutar la canalización si la ejecución programada anteriormente está en curso. Cuando batch
es true
, no se iniciará una nueva ejecución de canalización debido a la programación si una ejecución de canalización anterior sigue en curso. El valor predeterminado es false
.
La propiedad batch
se ve afectada por el valor de la propiedad always
. Cuando always
es true
, la canalización se ejecuta según la programación cron, incluso cuando batch
se true
y hay una ejecución en curso.
Siempre | Lote | Comportamiento |
---|---|---|
false |
false |
La canalización solo se ejecuta si hay un cambio con respecto a la última ejecución de canalización programada correcta. |
false |
true |
La canalización solo se ejecuta si hay un cambio con respecto a la última ejecución de canalización programada correcta y no hay ninguna ejecución de canalización programada en curso. |
true |
false |
La canalización se ejecuta según la programación cron. |
true |
true |
La canalización se ejecuta según la programación cron aunque haya una ejecución en curso. |
always
booleano .
si se debe ejecutar siempre la canalización o solo si se han producido cambios en el código fuente desde la última ejecución programada correcta; el valor predeterminado es false.
Observaciones
Si no especifica ningún desencadenador programado, no se producen compilaciones programadas.
Nota:
Si especifica una cláusula exclude
sin una cláusula include
para branches
, equivale a especificar *
en la cláusula include
.
Importante
Los desencadenadores programados definidos mediante la interfaz de usuario de configuración de canalización tienen prioridad sobre los desencadenadores programados de YAML.
Si la canalización de YAML tiene desencadenadores programados de YAML y desencadenadores programados definidos por la interfaz de usuario, solo se ejecutan los desencadenadores programados definidos por la interfaz de usuario. Para ejecutar los desencadenadores programados definidos por YAML en la canalización de YAML, debe quitar los desencadenadores programados definidos en la interfaz de usuario de configuración de canalización. Una vez quitados todos los desencadenadores programados de la interfaz de usuario, se debe realizar una inserción para que los desencadenadores programados de YAML empiecen a evaluarse.
Para eliminar desencadenadores programados de interfaz de usuario de una canalización DE YAML, consulte configuración de la interfaz de usuario invalida los desencadenadores programados de YAML.
Variable Build.CronSchedule.DisplayName
Cuando se ejecuta una canalización debido a un desencadenador programado cron, la variable de Build.CronSchedule.DisplayName
predefinida contiene el displayName
de la programación cron que desencadenó la ejecución de la canalización.
La canalización de YAML puede contener varias programaciones cron y es posible que quiera que la canalización ejecute diferentes fases o trabajos en función de las ejecuciones de programación cron. Por ejemplo, tiene una compilación nocturna y una compilación semanal, y desea ejecutar una determinada fase solo durante la compilación nocturna. Puede usar la variable Build.CronSchedule.DisplayName
en una condición de trabajo o fase para determinar si se debe ejecutar ese trabajo o fase.
- stage: stage1
# Run this stage only when the pipeline is triggered by the
# "Daily midnight build" cron schedule
condition: eq(variables['Build.CronSchedule.DisplayName'], 'Daily midnight build')
Para obtener más ejemplos, consulte la siguiente sección Ejemplos.
Ejemplos
En el ejemplo siguiente se definen dos programaciones.
La primera programación, compilación diaria de medianoche, ejecuta una canalización a medianoche todos los días solo si el código ha cambiado desde la última ejecución programada correcta.
Ejecuta la canalización para main
y todas las ramas de releases/*
, excepto para esas ramas en releases/ancient/*
.
La segunda programación, compilación semanal del domingo, ejecuta una canalización al mediodía los domingos para todas las ramas de releases/*
.
Lo hace independientemente de si el código ha cambiado desde la última ejecución.
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
- releases/*
exclude:
- releases/ancient/*
- cron: '0 12 * * 0'
displayName: Weekly Sunday build
branches:
include:
- releases/*
always: true
Para ejecutar condicionalmente una fase o un trabajo en función de si se programó mediante un desencadenador programado, use la variable Build.CronSchedule.DisplayName
en una condición. En este ejemplo, stage1
solo se ejecuta si la programación de Daily midnight build
desencadenó la canalización y job3
solo se ejecuta si la programación de Weekly Sunday build
desencadenó la canalización.
stages:
- stage: stage1
# Run this stage only when the pipeline is triggered by the
# "Daily midnight build" cron schedule
condition: eq(variables['Build.CronSchedule.DisplayName'], 'Daily midnight build')
jobs:
- job: job1
steps:
- script: echo Hello from Stage 1 Job 1
- stage: stage2
dependsOn: [] # Indicate this stage does not depend on the previous stage
jobs:
- job: job2
steps:
- script: echo Hello from Stage 2 Job 2
- job: job3
# Run this job only when the pipeline is triggered by the
# "Weekly Sunday build" cron schedule
condition: eq(variables['Build.CronSchedule.DisplayName'], 'Weekly Sunday build')
steps:
- script: echo Hello from Stage 2 Job 3
Consulte también
- Obtenga más información sobre los desencadenadores programados .
- Obtenga más información sobre desencadenadores en general y cómo especificarlos.