définition schedules.cron

Un déclencheur planifié spécifie une planification sur laquelle les branches sont créées.

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.

Définitions qui font référence à cette définition : planifications

Propriétés

cron String. Obligatoire comme première propriété.
Syntaxe Cron définissant une planification en heure UTC.

displayName String.
Nom convivial facultatif donné à une planification spécifique.

branchesincludeExcludeFilters.
Noms de branche à inclure ou à exclure pour déclencher une exécution.

batchbooléen.
s’il faut exécuter le pipeline si l’exécution planifiée précédemment est en cours ; la valeur par défaut est false. Cela, quelle que soit la version du dépôt de pipeline.

Le tableau suivant décrit comment always et batch interagir.

Toujours Batch Comportement
false false Le pipeline s’exécute uniquement en cas de modification par rapport à la dernière exécution planifiée réussie du pipeline.
false true Le pipeline s’exécute uniquement s’il y a une modification par rapport à la dernière exécution planifiée réussie du pipeline, et s’il n’y a pas d’exécution de pipeline planifiée en cours.
true false Le pipeline s’exécute selon la planification cron.
true true Le pipeline s’exécute selon la planification cron.

Important

Quand always est true, le pipeline s’exécute conformément à la planification cron, même si batch est true.

alwaysbooléen.
S’il faut toujours exécuter le pipeline ou uniquement s’il y a eu des modifications de code source depuis la dernière exécution planifiée réussie ; la valeur par défaut est false.

Remarques

Si vous ne spécifiez aucun déclencheur planifié, aucune génération planifiée ne se produit.

Notes

Si vous spécifiez une exclude clause sans include clause pour branches, cela équivaut à spécifier * dans la include clause .

Important

Les déclencheurs planifiés définis à l’aide de l’interface utilisateur des paramètres de pipeline sont prioritaires sur les déclencheurs planifiés YAML.

Si votre pipeline YAML comporte à la fois des déclencheurs planifiés YAML et des déclencheurs planifiés définis par l’interface utilisateur, seuls les déclencheurs planifiés définis par l’interface utilisateur sont exécutés. Pour exécuter les déclencheurs planifiés définis par YAML dans votre pipeline YAML, vous devez supprimer les déclencheurs planifiés définis dans l’interface utilisateur des paramètres de pipeline. Une fois que tous les déclencheurs planifiés de l’interface utilisateur ont été supprimés, une poussée doit être effectuée pour que les déclencheurs planifiés YAML commencent à être évalués.

Pour supprimer des déclencheurs planifiés par l’interface utilisateur d’un pipeline YAML, consultez Les paramètres de l’interface utilisateur remplacent les déclencheurs planifiés YAML.

Variable Build.CronSchedule.DisplayName

Lorsqu’un pipeline s’exécute en raison d’un déclencheur planifié cron, la variable prédéfinie Build.CronSchedule.DisplayName contient le displayName de la planification cron qui a déclenché l’exécution du pipeline.

Votre pipeline YAML peut contenir plusieurs planifications cron, et vous pouvez souhaiter que votre pipeline exécute différentes étapes ou travaux en fonction de l’exécution de la planification cron. Par exemple, vous disposez d’une build nocturne et d’une build hebdomadaire, et vous souhaitez exécuter une certaine étape uniquement pendant la build nocturne. Vous pouvez utiliser la Build.CronSchedule.DisplayName variable dans une condition de travail ou d’étape pour déterminer s’il faut exécuter ce travail ou cette étape.

- 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')

Pour plus d’exemples, consultez la section Exemples suivante.

Exemples

L’exemple suivant définit deux planifications.

La première planification, build daily midnight, exécute un pipeline à minuit tous les jours uniquement si le code a changé depuis la dernière exécution planifiée réussie. Il exécute le pipeline pour main et toutes les releases/* branches, à l’exception des branches sous releases/ancient/*.

La deuxième planification, weekly sunday build, exécute un pipeline à midi le dimanche pour toutes les releases/* branches. Il le fait, que le code ait ou non changé depuis la dernière exécution.

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

Pour exécuter de manière conditionnelle une étape ou un travail selon qu’elle a été planifiée ou non par un déclencheur planifié, utilisez la Build.CronSchedule.DisplayName variable dans une condition. Dans cet exemple, stage1 s’exécute uniquement si le pipeline a été déclenché par la Daily midnight build planification et job3 ne s’exécute que si le pipeline a été déclenché par la Weekly Sunday build planification.

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

Voir aussi