Partager via


définition schedules.cron

Un déclencheur planifié spécifie une planification sur laquelle les branches sont généré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 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.

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

Propriétés

chaîne cron. Obligatoire en tant que première propriété.
syntaxe Cron définissant une planification en heure UTC.

chaîne displayName.
nom convivial facultatif donné à une planification spécifique.

branches includeExcludeFilters.
noms de branche à inclure ou exclure pour déclencher une exécution.

batch booléen .
La propriété batch configure s’il faut exécuter le pipeline si l’exécution planifiée précédemment est en cours. Lorsque batch est true, une nouvelle exécution de pipeline ne démarre pas en raison de la planification si une exécution de pipeline précédente est toujours en cours. La valeur par défaut est false.

La propriété batch est affectée par le paramètre de la propriété always. Lorsque always est true, le pipeline s’exécute en fonction de la planification cron, même quand batch est true et qu’il existe une exécution en cours.

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

always boolé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 spécifiez aucun déclencheur planifié, aucune build planifiée ne se produit.

Remarque

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

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 d’interface utilisateur sont supprimés, un push doit être effectué pour que les déclencheurs planifiés YAML commencent à être évalués.

Pour supprimer des déclencheurs planifiés d’interface utilisateur à partir d’un pipeline YAML, consultez 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 Build.CronSchedule.DisplayName prédéfinie contient la displayName de la planification cron qui a déclenché l’exécution du pipeline.

Votre pipeline YAML peut contenir plusieurs planifications cron et vous souhaiterez peut-être que votre pipeline exécute différentes étapes ou travaux en fonction des exécutions de 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 génération nocturne. Vous pouvez utiliser la variable Build.CronSchedule.DisplayName 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 suivants.

Exemples

L’exemple suivant définit deux planifications.

La première planification, build Daily minuit, 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 branches releases/*, à l’exception de ces branches sous releases/ancient/*.

La deuxième planification, build hebdomadaire dimanche, exécute un pipeline à midi le dimanche pour toutes les branches releases/*. Il le fait indépendamment de la modification du code 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’il a été planifié par un déclencheur planifié, utilisez la variable Build.CronSchedule.DisplayName dans une condition. Dans cet exemple, stage1 s’exécute uniquement si le pipeline a été déclenché par la planification Daily midnight build et job3 s’exécute uniquement si le pipeline a été déclenché par la planification 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

Voir aussi

  • En savoir plus sur les déclencheurs planifiés .
  • En savoir plus sur déclencheurs en général et comment les spécifier.