definice schedules.cron
Naplánovaná aktivační událost určuje plán, podle kterého se vytvářejí větve.
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.
Definice, které odkazují na tuto definici: plány
Vlastnosti
cron
řetězec. Povinné jako první vlastnost.
syntaxe Cron definující plán v čase UTC.
displayName
řetězec.
Volitelný popisný název zadaný konkrétnímu plánu.
branches
includeExcludeFilters.
názvy větví, které se mají zahrnout nebo vyloučit pro aktivaci spuštění.
batch
logických.
Vlastnost batch
konfiguruje, jestli se má kanál spustit, pokud probíhá dříve naplánované spuštění. Pokud je batch
true
, nový běh pipeline nezačne podle plánu, pokud stále probíhá předchozí běh. Výchozí hodnota je false
.
Vlastnost batch
je ovlivněna nastavením vlastnosti always
. Když je always
true
, proces se spustí podle plánu cron, i když batch
je true
a probíhá spuštění.
Vždy | Dávka | 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ě ve srovnání s posledním úspěšným naplánovaným spuštěním a neprobíhá žádné naplánované spuštění kanálu. |
true |
false |
Ropovod se spouští podle plánu cron. |
true |
true |
Kanál se spouští podle plánu cron, i když probíhá probíhající spuštění. |
always
logických.
zda kanál vždy spustit, nebo pouze v případě, že došlo ke změnám zdrojového kódu od posledního úspěšného plánovaného spuštění; výchozí hodnota je false.
Poznámky
Pokud zadáte žádnou naplánovanou aktivační událost, nedojde k žádným plánovaným sestavením.
Poznámka:
Pokud zadáte klauzuli exclude
bez klauzule include
pro branches
, je ekvivalentní 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 váš kanál YAML obsahuje naplánované triggery YAML i naplánované aktivační události definované uživatelským rozhraním, spustí se pouze naplánované aktivační události definované uživatelským rozhraním. Pokud chcete spustit naplánované triggery YAML definované v kanálu YAML, musíte odebrat naplánované triggery definované v uživatelském rozhraní nastavení kanálu. Jakmile se odeberou všechny naplánované triggery v uživatelském rozhraní, je nutné provést odeslání, aby se naplánované triggery v YAML začaly vyhodnocovat.
Pokud chcete odstranit naplánované triggery uživatelského rozhraní z kanálu YAML, podívejte se, jak nastavení v uživatelském rozhraní přepisuje naplánované triggery YAML .
Proměnná Build.CronSchedule.DisplayName
Když je kanál spuštěný kvůli naplánované aktivační události cron, předdefinovaná proměnná Build.CronSchedule.DisplayName
obsahuje displayName
plánu cron, který aktivoval spuštění kanálu.
Kanál YAML může obsahovat více plánů cron a vy můžete chtít, aby váš kanál spouštěl různé fáze nebo úlohy podle toho, které plány cron běží. Například máte noční build a týdenní build a chcete spustit určitou fázi pouze během nočního build. Proměnnou Build.CronSchedule.DisplayName
v podmínce úlohy nebo fáze můžete použít k určení, jestli se má ú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, denní půlnoc sestavení, spustí kanál o půlnoci každý den pouze v případě, že se kód změnil od posledního úspěšného naplánovaného spuštění.
Spustí kanál pro main
a všechny releases/*
větve s výjimkou těchto větví v releases/ancient/*
.
Druhý plán, týdenní neděle sestavení, spustí kanál v poledne v neděli pro všechny releases/*
větve.
Provede 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á naplánovanou aktivační událostí, použijte proměnnou Build.CronSchedule.DisplayName
v podmínce. V tomto příkladu se stage1
spustí jenom v případě, že kanál aktivoval plán Daily midnight build
a job3
se spustí jenom v případě, že kanál aktivoval plán 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 naplánovaných triggerech.
- Přečtěte si další informace o triggerech obecně a o tom, jak je určit.