Sdílet prostřednictvím


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 batchtrue, 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 alwaystrue, 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é