schedules.cron-definition
En schemalagd utlösare anger ett schema för vilka grenar som skapas.
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.
Definitioner som refererar till den här definitionen: scheman
Egenskaper
cron
Sträng. Krävs som första egenskap.
Cron-syntax som definierar ett schema i UTC-tid.
displayName
Sträng.
Valfritt eget namn som ges till ett visst schema.
branches
includeExcludeFilters.
Grennamn som ska inkluderas eller exkluderas för att utlösa en körning.
batch
booleskt värde.
Om pipelinen ska köras om den tidigare schemalagda körningen pågår. standardvärdet är false
. Det här gäller oavsett vilken version av pipelinelagringsplatsen som används.
I följande tabell beskrivs hur always
och batch
interagerar.
Alltid | Batch | Beteende |
---|---|---|
false |
false |
Pipelinen körs bara om det sker en ändring i förhållande till den senaste lyckade schemalagda pipelinekörningen. |
false |
true |
Pipelinen körs bara om det sker en ändring i förhållande till den senaste lyckade schemalagda pipelinekörningen och det inte pågår någon schemalagd pipelinekörning. |
true |
false |
Pipelinen körs enligt cron-schemat. |
true |
true |
Pipelinen körs enligt cron-schemat. |
Viktigt
När always
är true
körs pipelinen enligt cron-schemat, även när batch
är true
.
always
booleskt värde.
Om du alltid ska köra pipelinen eller bara om källkoden har ändrats sedan den senaste lyckade schemalagda körningen. standardvärdet är false.
Kommentarer
Om du inte anger någon schemalagd utlösare sker inga schemalagda versioner.
Anteckning
Om du anger en exclude
-sats utan en include
-sats för branches
motsvarar det att *
ange i include
-satsen.
Viktigt
Schemalagda utlösare som definierats med hjälp av gränssnittet för pipelineinställningar har företräde framför YAML-schemalagda utlösare.
Om din YAML-pipeline har både schemalagd YAML utlösare och gränssnittsdefinierade schemalagda utlösare körs endast de gränssnittsdefinierade schemalagda utlösarna. Om du vill köra de YAML-definierade schemalagda utlösarna i YAML-pipelinen måste du ta bort de schemalagda utlösare som definierats i användargränssnittet för pipelineinställningar. När alla schemalagda utlösare för användargränssnittet har tagits bort måste en push göras för att DE YAML-schemalagda utlösarna ska börja utvärderas.
Information om hur du tar bort schemalagda utlösare för användargränssnittet från en YAML-pipeline finns i UI-inställningar åsidosätter schemalagda YAML-utlösare.
Variabeln Build.CronSchedule.DisplayName
När en pipeline körs på grund av en cron-schemalagd utlösare innehåller displayName
den fördefinierade Build.CronSchedule.DisplayName
variabeln det cron-schema som utlöste pipelinekörningen.
Din YAML-pipeline kan innehålla flera cron-scheman och du kanske vill att din pipeline ska köra olika faser eller jobb baserat på vilka Cron-scheman som körs. Du kan till exempel ha en nattlig version och en veckovis version, och du vill bara köra en viss fas under den nattliga versionen. Du kan använda variabeln Build.CronSchedule.DisplayName
i ett jobb- eller fasvillkor för att avgöra om jobbet eller fasen ska köras.
- 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')
Fler exempel finns i följande exempelavsnitt.
Exempel
I följande exempel definieras två scheman.
Det första schemat, Daily midnight build, kör en pipeline vid midnatt varje dag endast om koden har ändrats sedan den senaste lyckade schemalagda körningen.
Den kör pipelinen för main
och alla releases/*
grenar, förutom dessa grenar under releases/ancient/*
.
Det andra schemat, Weekly Sunday Build, kör en pipeline kl. 12.00 på söndagar för alla releases/*
grenar.
Det gör den oavsett om koden har ändrats sedan den senaste körningen.
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
Om du vill köra ett steg eller jobb villkorligt baserat på om det schemalagts av en schemalagd utlösare använder du variabeln Build.CronSchedule.DisplayName
i ett villkor. I det här exemplet stage1
körs bara om pipelinen utlöstes av Daily midnight build
schemat och job3
endast körs om pipelinen utlöstes av Weekly Sunday build
schemat.
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
Se även
- Läs mer om schemalagda utlösare.
- Läs mer om utlösare i allmänhet och hur du anger dem.