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.
branches
includeExcludeFilters.
Noms de branche à inclure ou à exclure pour déclencher une exécution.
batch
boolé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
.
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 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
- En savoir plus sur les déclencheurs planifiés.
- En savoir plus sur les déclencheurs en général et sur la façon de les spécifier.