schedules.cron definition
Ein geplanter Trigger gibt einen Zeitplan an, auf dem Branches erstellt werden.
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.
Definitionen, die auf diese Definition verweisen: Zeitpläne
Eigenschaften
cron
Schnur. Erforderlich als erste Eigenschaft.
Cronsyntax, die einen Zeitplan in UTC-Zeit definiert.
displayName
Schnur.
Optionaler Anzeigename, der einem bestimmten Zeitplan zugewiesen wird.
branches
includeExcludeFilters.
Branchnamen, die zum Auslösen einer Ausführung eingeschlossen oder ausgeschlossen werden sollen.
batch
Boolesch.
Gibt an, ob die Pipeline ausgeführt werden soll, wenn die zuvor geplante Ausführung ausgeführt wird; der Standardwert ist false
. Dies ist unabhängig von der Version des Pipelinerepositorys.
In der folgenden Tabelle wird beschrieben, wie und wie always
sie batch
interagieren.
Immer | Batch | Verhalten |
---|---|---|
false |
false |
Die Pipeline wird nur ausgeführt, wenn es eine Änderung in Bezug auf die letzte erfolgreiche geplante Pipelineausführung gibt. |
false |
true |
Die Pipeline wird nur ausgeführt, wenn es eine Änderung in Bezug auf die letzte erfolgreiche geplante Pipelineausführung gibt und keine geplante Pipelineausführung ausgeführt wird. |
true |
false |
Die Pipeline wird gemäß dem Cron-Zeitplan ausgeführt. |
true |
true |
Die Pipeline wird gemäß dem Cron-Zeitplan ausgeführt. |
Wichtig
Wenn always
ist, wird true
die Pipeline gemäß dem Cron-Zeitplan ausgeführt, auch wenn true
batch
ist.
always
Boolesch.
Gibt an, ob die Pipeline immer oder nur ausgeführt werden soll, wenn seit der letzten erfolgreichen geplanten Ausführung Quellcodeänderungen vorgenommen wurden; der Standardwert ist false.
Bemerkungen
Wenn Sie keinen geplanten Trigger angeben, werden keine geplanten Builds durchgeführt.
Hinweis
Wenn Sie eine exclude
-Klausel ohne eine include
-Klausel für branches
angeben, ist dies gleichbedeutend mit der Angabe von *
in der include
-Klausel.
Wichtig
Plantrigger, die über die Benutzeroberfläche für Pipelineeinstellungen definiert werden, haben Vorrang vor YAML-Plantriggern.
Wenn Ihre YAML-Pipeline sowohl über geplante YAML-Trigger als auch über in der Benutzeroberfläche definierte geplante Trigger verfügt, werden nur die in der Benutzeroberfläche definierten geplanten Trigger ausgeführt. Um die von YAML definierten geplanten Trigger in Ihrer YAML-Pipeline auszuführen, müssen Sie die geplanten Trigger entfernen, die in der Benutzeroberfläche für die Pipelineeinstellungen definiert sind. Nachdem alle auf der Benutzerfläche definierten Plantrigger entfernt wurden, muss ein Push erfolgen, damit die zu startenden YAML-Plantrigger überprüft werden können.
Informationen zum Löschen von auf der Benutzeroberfläche definierten Plantriggern aus einer YAML-Pipeline finden Sie unter Überschreiben von YAML-Plantriggern durch Benutzeroberflächeneinstellungen.
Build.CronSchedule.DisplayName-Variable
Wenn eine Pipeline aufgrund eines geplanten Cron-Triggers ausgeführt wird, enthält die vordefinierte Variable den displayName
des Cron-ZeitplansBuild.CronSchedule.DisplayName
, der die Pipelineausführung ausgelöst hat.
Ihre YAML-Pipeline kann mehrere Cron-Zeitpläne enthalten, und Sie möchten möglicherweise, dass Ihre Pipeline unterschiedliche Phasen oder Aufträge ausführt, basierend auf dem cron-Zeitplan. Beispielsweise verfügen Sie über einen nächtlichen Build und einen wöchentlichen Build, und Sie möchten eine bestimmte Phase nur während des nächtlichen Builds ausführen. Sie können die Build.CronSchedule.DisplayName
Variable in einer Auftrags- oder Phasenbedingung verwenden, um zu bestimmen, ob dieser Auftrag oder diese Phase ausgeführt werden soll.
- 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')
Weitere Beispiele finden Sie im folgenden Abschnitt Beispiele .
Beispiele
Im folgenden Beispiel werden zwei Zeitpläne definiert.
Der erste Zeitplan, Daily midnight build, führt täglich um Mitternacht nur dann eine Pipeline aus, wenn sich der Code seit der letzten erfolgreichen geplanten Ausführung geändert hat.
Er führt die Pipeline für main
und alle releases/*
-Branches aus, mit Ausnahme dieser Branches unter releases/ancient/*
.
Der zweite Zeitplan, Weekly Sunday build, führt sonntags mittags eine Pipeline für alle releases/*
-Branches aus.
Dies geschieht unabhängig davon, ob sich der Code seit der letzten Ausführung geändert hat.
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
Verwenden Sie die Build.CronSchedule.DisplayName
Variable in einer Bedingung, um eine Phase oder einen Auftrag abhängig davon auszuführen, ob sie von einem geplanten Trigger geplant wurde. In diesem Beispiel wird nur ausgeführt, stage1
wenn die Pipeline durch den Daily midnight build
Zeitplan ausgelöst wurde, und job3
wird nur ausgeführt, wenn die Pipeline durch den Weekly Sunday build
Zeitplan ausgelöst wurde.
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
Siehe auch
- Erfahren Sie mehr über geplante Trigger.
- Erfahren Sie mehr über Trigger im Allgemeinen und deren Angabe.