Sdílet prostřednictvím


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.

branchesincludeExcludeFilters.
Názvy větví, které se mají zahrnout nebo vyloučit pro aktivaci spuštění.

batchboolean.
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.

alwaysboolean.
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é