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 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.
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 specifikt schema.
branches
includeExcludeFilters.
Grennamn som ska inkluderas eller exkluderas för att utlösa en körning.
batch
boolesk.
Egenskapen batch
konfigurerar om pipelinen ska köras om den tidigare schemalagda körningen pågår. När batch
är true
startar inte en ny pipelinekörning på grund av schemat om en tidigare pipelinekörning fortfarande pågår. Standardvärdet är false
.
Egenskapen batch
påverkas av inställningen för egenskapen always
. När always
är true
körs pipelinen enligt cron-schemat, även när batch
är true
och en pågående körning pågår.
Alltid | Omgång | Uppförande |
---|---|---|
false |
false |
Pipeline körs endast om det sker en ändring i förhållande till den senaste lyckade schemalagda pipelinekörningen. |
false |
true |
Pipeline körs endast om det sker en ändring i förhållande till den senaste lyckade schemalagda pipelinekörningen och det inte finns någon pågående schemalagd pipelinekörning. |
true |
false |
Pipeline körs enligt cron-schemat. |
true |
true |
Pipeline körs enligt cron-schemat även om det pågår en pågående körning. |
always
boolesk.
Om du alltid ska köra pipelinen eller bara om det har skett källkodsändringar sedan den senaste lyckade schemalagda körningen. standardvärdet är false.
Anmärkningar
Om du inte anger någon schemalagd utlösare sker inga schemalagda versioner.
Anmärkning
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 användargränssnittet för pipelineinställningar har företräde framför YAML-schemalagda utlösare.
Om YAML-pipelinen har både YAML-schemalagda 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 SCHEMALAGDa YAML-utlösarna ska börja utvärderas.
För att ta bort UI-schemalagda utlösare från en YAML-pipeline, se UI-inställningar åsidosätter schemalagda YAML-utlösare.
Variabeln Build.CronSchedule.DisplayName
När en pipeline körs på grund av en schemalagd cron-utlösare innehåller den fördefinierade Build.CronSchedule.DisplayName
variabeln displayName
för cron-schemat som utlöste pipelinekörningen.
YAML-pipelinen kan innehålla flera cron-scheman och du kanske vill att din pipeline ska köra olika steg eller jobb baserat på vilket cron-schema som körs. Du har till exempel ett nattligt bygge och en veckoversion, och du vill bara köra en viss fas under det nattliga bygget. 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 avsnitt Exempel.
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 grenarna 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 det 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 körs stage1
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.