Condividi tramite


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 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.

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 .
La proprietà batch consente di configurare se eseguire la pipeline se l'esecuzione pianificata in precedenza è in corso. Quando batch è true, una nuova esecuzione della pipeline non verrà avviata a causa della pianificazione se è ancora in corso un'esecuzione della pipeline precedente. Il valore predefinito è false.

La proprietà batch è interessata dall'impostazione della proprietà always. Quando always è true, la pipeline viene eseguita in base alla pianificazione cron, anche quando batch è true e viene eseguita un'esecuzione in corso.

Sempre Gruppo Comportamento
false false La pipeline viene eseguita solo se è presente una modifica rispetto all'ultima esecuzione pianificata della pipeline.
false true La pipeline viene eseguita solo se è presente una modifica rispetto all'ultima esecuzione pianificata della pipeline pianificata e non è prevista alcuna esecuzione della pipeline in corso.
true false La pipeline viene eseguita in base alla pianificazione cron.
true true La pipeline viene eseguita in base alla pianificazione cron anche se è in corso un'esecuzione.

always booleano .
Indica se eseguire sempre la pipeline o solo se sono state apportate modifiche al codice sorgente dall'ultima esecuzione pianificata; il valore predefinito è false.

Osservazioni:

Se non si specifica alcun trigger pianificato, non vengono eseguite compilazioni pianificate.

Nota

Se si specifica una clausola exclude senza una clausola include per branches, equivale a specificare * nella clausola include.

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 sostituiscono i trigger pianificati YAML.

Variabile Build.CronSchedule.DisplayName

Quando una pipeline è in esecuzione a causa di un trigger pianificato cron, la variabile di Build.CronSchedule.DisplayName predefinita contiene il 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 variabile Build.CronSchedule.DisplayName in una condizione di processo o fase per determinare se eseguire il processo o la 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 seguente esempi.

Esempi

Nell'esempio seguente vengono definite due pianificazioni.

La prima pianificazione, compilazione giornaliera di mezzanotte, esegue una pipeline a mezzanotte ogni giorno solo se il codice è stato modificato dopo l'ultima esecuzione pianificata completata. Esegue la pipeline per main e tutti i rami releases/*, ad eccezione di quelli in releases/ancient/*.

La seconda pianificazione, compilazione settimanale domenica, esegue una pipeline a mezzogiorno di domenica per tutti i rami releases/*. 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 variabile Build.CronSchedule.DisplayName in una condizione. In questo esempio, stage1 viene eseguito solo se la pipeline è stata attivata dalla pianificazione Daily midnight build e job3 viene eseguita solo se la pipeline è stata attivata dalla pianificazione Weekly Sunday build.

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

Vedere anche

  • Altre informazioni sui trigger pianificati .
  • Altre informazioni sui trigger in generale e su come specificarli.