definizione schedules.cron
Un trigger pianificato specifica una pianificazione in base alla quale vengono compilati i rami.
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 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 changes since the last successful scheduled run; the default is false.
Definizioni che fanno riferimento a questa definizione: pianificazioni
Proprietà
cron
Stringa. Obbligatorio come prima proprietà.
Sintassi Cron che definisce una pianificazione nell'ora UTC.
displayName
Stringa.
Nome descrittivo facoltativo assegnato a una pianificazione specifica.
branches
includeExcludeFilters.
Nomi di ramo da includere o escludere per l'attivazione di un'esecuzione.
batch
booleano.
Indica se eseguire la pipeline se l'esecuzione pianificata in precedenza è in corso; il valore predefinito è false
. Questo avviene indipendentemente dalla versione del repository della pipeline.
Nella tabella seguente viene descritto come always
e batch
interagire.
Always | Batch | Comportamento |
---|---|---|
false |
false |
La pipeline viene eseguita solo se è presente una modifica rispetto all'ultima esecuzione pianificata della pipeline pianificata. |
false |
true |
La pipeline viene eseguita solo se è presente una modifica rispetto all'ultima esecuzione pianificata della pipeline pianificata e non è in corso alcuna esecuzione pianificata della pipeline. |
true |
false |
Le esecuzioni della pipeline vengono eseguite in base alla pianificazione cron. |
true |
true |
Le esecuzioni della pipeline vengono eseguite in base alla pianificazione cron. |
Importante
Quando always
è true
, la pipeline viene eseguita in base alla pianificazione cron, anche quando batch
è true
.
always
booleano.
Se eseguire sempre la pipeline o solo se sono state apportate modifiche al codice sorgente dall'ultima esecuzione pianificata riuscita; il valore predefinito è false.
Commenti
Se non si specifica alcun trigger pianificato, non vengono eseguite compilazioni pianificate.
Nota
Se si specifica una exclude
clausola senza clausola include
per branches
, equivale a specificare *
nella include
clausola .
Importante
I trigger pianificati definiti usando l'interfaccia utente delle impostazioni della pipeline hanno la precedenza sui trigger pianificati YAML.
Se la pipeline YAML include trigger pianificati YAML e trigger pianificati definiti dall'interfaccia utente, vengono eseguiti solo i trigger pianificati definiti dall'interfaccia utente. Per eseguire i trigger pianificati YAML definiti nella pipeline YAML, è necessario rimuovere i trigger pianificati definiti nell'interfaccia utente delle impostazioni della pipeline. Dopo aver rimosso tutti i trigger pianificati dell'interfaccia utente, è necessario eseguire un push affinché i trigger pianificati YAML inizino a essere valutati.
Per eliminare i trigger pianificati dell'interfaccia utente da una pipeline YAML, vedere Impostazioni dell'interfaccia utente che eseguono l'override dei trigger pianificati YAML.
Variabile Build.CronSchedule.DisplayName
Quando una pipeline è in esecuzione a causa di un trigger pianificato cron, la variabile predefinita Build.CronSchedule.DisplayName
contiene l'oggetto displayName
della pianificazione cron che ha attivato l'esecuzione della pipeline.
La pipeline YAML può contenere più pianificazioni cron ed è possibile che la pipeline esegua fasi o processi diversi in base alla pianificazione cron eseguita. Ad esempio, si dispone di una compilazione notturna e di una compilazione settimanale e si vuole eseguire una determinata fase solo durante la compilazione notturna. È possibile usare la Build.CronSchedule.DisplayName
variabile in una condizione di processo o fase per determinare se eseguire tale processo 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')
Per altri esempi, vedere la sezione Esempi seguente.
Esempio
Nell'esempio seguente vengono definite due pianificazioni.
La prima pianificazione, compilazione giornaliera mezzanotte, esegue una pipeline a mezzanotte ogni giorno solo se il codice è stato modificato dopo l'ultima esecuzione pianificata.
Esegue la pipeline per main
e tutti i releases/*
rami, ad eccezione di tali rami in releases/ancient/*
.
La seconda pianificazione, la build settimanale domenica, esegue una pipeline alle ore di mezzogiorno di domenica per tutti i releases/*
rami.
In questo modo, indipendentemente dal fatto che il codice sia stato modificato dall'ultima esecuzione.
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
Per eseguire in modo condizionale una fase o un processo in base al fatto che sia stato pianificato da un trigger pianificato, usare la Build.CronSchedule.DisplayName
variabile in una condizione. In questo esempio viene stage1
eseguito solo se la pipeline è stata attivata dalla Daily midnight build
pianificazione e job3
viene eseguita solo se la pipeline è stata attivata dalla Weekly Sunday build
pianificazione.
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
Vedi anche
- Altre informazioni sui trigger pianificati.
- Altre informazioni sui trigger in generale e su come specificarli.