definice schedules.cron
Naplánovaná aktivační událost určuje plán, podle kterého jsou větve vytvořeny.
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.
Definice, které odkazují na tuto definici: plány
Vlastnosti
cron
Řetězec. Povinný argument jako první vlastnost.
Syntaxe Cron definující plán v čase UTC.
displayName
Řetězec.
Volitelný popisný název zadaný ke konkrétnímu plánu.
branches
includeExcludeFilters.
Názvy větví, které se mají zahrnout nebo vyloučit pro aktivaci spuštění.
batch
boolean.
Zda spustit kanál, pokud probíhá dříve naplánované spuštění; výchozí hodnota je false
. To platí bez ohledu na verzi úložiště kanálu.
Následující tabulka popisuje, jak always
a batch
jak pracovat.
Vždy | Batch | Chování |
---|---|---|
false |
false |
Kanál se spustí jenom v případě, že dojde ke změně s ohledem na poslední úspěšné naplánované spuštění kanálu. |
false |
true |
Kanál se spustí jenom v případě, že dojde ke změně s ohledem na poslední úspěšné naplánované spuštění kanálu a neprobíhá žádné naplánované spuštění kanálu. |
true |
false |
Kanál se spouští podle plánu cron. |
true |
true |
Kanál se spouští podle plánu cron. |
Důležité
Pokud always
je true
, kanál běží podle plánu cron, i když batch
je true
.
always
boolean.
Zda se má kanál vždy spouštět, nebo pouze v případě, že od posledního úspěšného naplánovaného spuštění došlo ke změnám zdrojového kódu; výchozí hodnota je false.
Poznámky
Pokud nezadáte žádnou naplánovanou aktivační událost, nedojde k žádným plánovaným sestavením.
Poznámka
Pokud zadáte exclude
klauzuli bez include
klauzule pro branches
, odpovídá zadání *
v klauzuli include
.
Důležité
Naplánované triggery definované pomocí uživatelského rozhraní nastavení kanálu mají přednost před plánovanými triggery YAML.
Pokud kanál YAML obsahuje plánované triggery YAML i plánované triggery definované v uživatelském rozhraní, spouštějí se jenom plánované triggery definované uživatelským rozhraním. Pokud chcete v kanálu YAML spouštět plánované triggery definované v YAML, musíte odebrat plánované triggery definované v uživatelském rozhraní s nastavením kanálu. Po odebrání všech naplánovaných triggerů uživatelského rozhraní se musí provést nabízené oznámení, aby se začaly vyhodnocovat naplánované triggery YAML.
Pokud chcete odstranit naplánované triggery uživatelského rozhraní z kanálu YAML, přečtěte si téma Nastavení uživatelského rozhraní přepisuje naplánované triggery YAML.
Proměnná Build.CronSchedule.DisplayName
Pokud je kanál spuštěný kvůli naplánované aktivační události cron, předdefinovaná Build.CronSchedule.DisplayName
proměnná obsahuje displayName
plán cron, který aktivoval spuštění kanálu.
Kanál YAML může obsahovat více plánů cron a můžete chtít, aby váš kanál spouštět různé fáze nebo úlohy na základě toho, který plán cron běží. Máte například noční build a týdenní build a chcete spustit určitou fázi pouze během nočního sestavení. Proměnnou v podmínce Build.CronSchedule.DisplayName
úlohy nebo fáze můžete použít k určení, jestli se má tato úloha nebo fáze spustit.
- 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')
Další příklady najdete v následující části Příklady .
Příklady
Následující příklad definuje dva plány.
První plán, sestavení Denní půlnoc, spustí kanál o půlnoci každý den pouze v případě, že se kód od posledního úspěšného naplánovaného spuštění změnil.
Spustí kanál pro main
a všechny releases/*
větve s výjimkou těchto větví v části releases/ancient/*
.
Druhý plán, sestavení Týdenní neděle, spustí kanál pro všechny releases/*
větve v neděli v poledne.
Dělá to bez ohledu na to, jestli se kód od posledního spuštění změnil.
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
Pokud chcete podmíněně spustit fázi nebo úlohu na základě toho, jestli byla naplánovaná pomocí naplánovaného triggeru Build.CronSchedule.DisplayName
, použijte proměnnou v podmínce. V tomto příkladu se spustí pouze v případě, stage1
že byl kanál aktivován plánem Daily midnight build
, a job3
spustí se pouze v případě, že byl kanál aktivován plánem 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
Viz také
- Přečtěte si další informace o plánovaných triggerech.
- Přečtěte si další informace o triggerech obecně a o tom, jak je zadat.