schedules.cron definíció

Az ütemezett eseményindító meghatározza az ágak felépítésének ütemezését.

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.

A definícióra hivatkozó definíciók: ütemezések

Tulajdonságok

cron Karakterlánc. Első tulajdonságként kötelező megadni.
Cron-szintaxis, amely utc-időpontban határozza meg az ütemezést.

displayName Karakterlánc.
Egy adott ütemezésnek adott rövid név nem kötelező.

branchesincludeExcludeFilters.
Futtatás indításához belefoglalandó vagy kizárandó ágnevek.

batchlogikai érték.
A folyamat futtatása, ha a korábban ütemezett futtatás folyamatban van; az alapértelmezett érték a .false Ez a folyamat adattárának verziójától függetlenül történik.

Az alábbi táblázat bemutatja, hogyan és batch hogyan always működik együtt.

Mindig Batch Működés
false false A folyamat csak akkor fut, ha az utolsó sikeres ütemezett folyamatfuttatáshoz képest változás történt.
false true A folyamat csak akkor fut, ha az utolsó sikeres ütemezett folyamatfuttatáshoz képest változás történt, és nincs folyamatban lévő ütemezett folyamatfuttatás.
true false A folyamat a cron ütemezésének megfelelően fut.
true true A folyamat a cron ütemezésének megfelelően fut.

Fontos

Ha always az , truea folyamat a cron ütemezése szerint fut, még akkor is, ha batch az true.

alwayslogikai érték.
Azt határozza meg, hogy mindig futtassa-e a folyamatot, vagy csak akkor, ha a legutóbbi sikeres ütemezett futtatás óta módosult a forráskód; az alapértelmezett érték hamis.

Megjegyzések

Ha nem ad meg ütemezett eseményindítót, nem történik ütemezett build.

Megjegyzés

Ha a exclude záradék nélkül branchesinclude a záradékot adja meg, az egyenértékű a include záradékban való megadásával*.

Fontos

A folyamatbeállítások felhasználói felületén definiált ütemezett eseményindítók elsőbbséget élveznek a YAML ütemezett eseményindítóival szemben.

Ha a YAML-folyamatban ütemezett YAML-triggerek és a felhasználói felületen meghatározott ütemezett triggerek is vannak, akkor csak a felhasználói felületen meghatározott ütemezett triggerek futnak. Ahhoz, hogy az ütemezett YAML-triggerek fussanak a YAML-folyamatban, el kell távolítani a folyamatbeállítások felhasználói felületén definiált ütemezett triggereket. Az összes felhasználói felület ütemezett eseményindítójának eltávolítása után leküldést kell végezni a YAML ütemezett eseményindítóinak kiértékeléséhez.

Ha törölni szeretné a felhasználói felület ütemezett eseményindítóit egy YAML-folyamatból, tekintse meg a felhasználói felület beállításainak a YAML ütemezett eseményindítóinak felülbírálását ismertető cikket.

Build.CronSchedule.DisplayName változó

Ha egy folyamat cron ütemezett eseményindító miatt fut, az előre definiált Build.CronSchedule.DisplayName változó tartalmazza a displayName folyamatfuttatást kiváltó cron-ütemezést.

A YAML-folyamat több cron-ütemezést is tartalmazhat, és előfordulhat, hogy azt szeretné, hogy a folyamat különböző fázisokat vagy feladatokat futtasson a cron-ütemezések alapján. Van például egy éjszakai és egy heti buildje, és csak az éjszakai build alatt szeretne futtatni egy bizonyos szakaszt. A változót Build.CronSchedule.DisplayName egy feladatban vagy fázisfeltételben használhatja annak meghatározására, hogy az adott feladatot vagy szakaszt szeretné-e futtatni.

- 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')

További példákért tekintse meg a következő Példák szakaszt .

Példák

Az alábbi példa két ütemezést határoz meg.

Az első ütemezés, a Napi éjfél build csak akkor futtat minden nap éjfélkor egy folyamatot, ha a kód az utolsó sikeres ütemezett futtatás óta megváltozott. Futtatja a folyamatot main és az összes releases/* ágat, kivéve azokat az ágakat a alatt releases/ancient/*.

A második ütemezés, a Heti vasárnap build vasárnap délben futtat egy folyamatot az összes releases/* ághoz. Ez függetlenül attól, hogy a kód megváltozott-e az utolsó futtatás óta.

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

Ha feltételesen szeretne futtatni egy fázist vagy feladatot attól függően, hogy egy ütemezett eseményindító ütemezte-e, használja a Build.CronSchedule.DisplayName változót egy feltételben. Ebben a példában csak akkor fut, stage1 ha a folyamatot az Daily midnight build ütemezés aktiválta, és job3 csak akkor, ha a folyamatot az Weekly Sunday build ütemezés aktiválta.

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

Lásd még