schedules.cron-definitie
Een geplande trigger geeft een schema op waarop vertakkingen worden gebouwd.
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.
Definities die naar deze definitie verwijzen: planningen
Eigenschappen
cron
tekenreeks. Vereist als eerste eigenschap.
Cron-syntaxis voor het definiëren van een schema in UTC-tijd.
displayName
tekenreeks.
Optionele beschrijvende naam die aan een specifiek schema is gegeven.
branches
includeExcludeFilters.
Branch-namen die moeten worden opgenomen of uitgesloten voor het activeren van een uitvoering.
batch
booleaanse.
De eigenschap batch
configureert of de pijplijn moet worden uitgevoerd als de eerder geplande uitvoering wordt uitgevoerd. Wanneer batch
is true
, start een nieuwe pijplijnuitvoering niet volgens het schema indien een eerdere pijplijnuitvoering nog bezig is. De standaardwaarde is false
.
De eigenschap batch
wordt beïnvloed door de instelling van de eigenschap always
. Wanneer always
is true
, wordt de pijplijn uitgevoerd volgens het cron-schema, zelfs wanneer batch
is true
en er een uitvoering aan de gang is.
Altijd | Batch | Gedrag |
---|---|---|
false |
false |
Pijplijn wordt alleen uitgevoerd als er een wijziging is met betrekking tot de laatste geslaagde geplande pijplijnuitvoering. |
false |
true |
De pijplijn wordt alleen uitgevoerd als er een wijziging is ten opzichte van de laatste geslaagde geplande pijplijnuitvoering en er geen lopende geplande pijplijnuitvoering is. |
true |
false |
De pijplijn loopt volgens het cron-tijdschema. |
true |
true |
Pijplijnuitvoeringen volgens het cron-schema, zelfs als er een actieve uitvoering is. |
always
booleaanse.
Of de pijplijn altijd moet worden uitgevoerd of alleen als er wijzigingen in de broncode zijn aangebracht sinds de laatste geslaagde geplande uitvoering; de standaardwaarde is onwaar.
Opmerkingen
Als u geen geplande trigger opgeeft, worden er geen geplande builds uitgevoerd.
Notitie
Als u een exclude
-component opgeeft zonder een include
-component voor branches
, is deze gelijk aan het opgeven van *
in de include
-component.
Belangrijk
Geplande triggers die zijn gedefinieerd met behulp van de gebruikersinterface voor pijplijninstellingen hebben voorrang op yamL-geplande triggers.
Als uw YAML-pijplijn zowel geplande YAML-triggers als door de gebruikersinterface gedefinieerde geplande triggers bevat, worden alleen de door de gebruikersinterface gedefinieerde geplande triggers uitgevoerd. Als u de door YAML gedefinieerde geplande triggers in uw YAML-pijplijn wilt uitvoeren, moet u de geplande triggers verwijderen die zijn gedefinieerd in de gebruikersinterface voor pijplijninstellingen. Zodra alle geplande triggers voor de gebruikersinterface zijn verwijderd, moet er een push worden uitgevoerd om de YAML-geplande triggers te laten evalueren.
Zie voor het verwijderen van geplande triggers uit een YAML-pijplijn UI-instellingen overschrijven YAML-geplande triggers.
Variabele "Build.CronSchedule.DisplayName"
Wanneer een pijplijn wordt uitgevoerd vanwege een geplande cron-trigger, bevat de vooraf gedefinieerde Build.CronSchedule.DisplayName
variabele de displayName
van het cron-schema dat de pijplijnuitvoering heeft geactiveerd.
Uw YAML-pijplijn kan meerdere cron-planningen bevatten en mogelijk wilt u dat uw pijplijn verschillende fasen of taken uitvoert op basis van de cron-planning. U hebt bijvoorbeeld een nachtbouw en een wekelijkse build en u wilt alleen een bepaalde fase uitvoeren tijdens de nachtbouw. U kunt de variabele Build.CronSchedule.DisplayName
in een taak- of fasevoorwaarde gebruiken om te bepalen of die taak of fase moet worden uitgevoerd.
- 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')
Zie de volgende sectie Voorbeelden voor meer voorbeelden.
Voorbeelden
In het volgende voorbeeld worden twee planningen gedefinieerd.
Met de eerste planning, Daily midnight build, wordt elke dag elke dag een pijplijn uitgevoerd om middernacht als de code is gewijzigd sinds de laatste geslaagde geplande uitvoering.
De pijplijn wordt uitgevoerd voor main
en alle releases/*
vertakkingen, met uitzondering van die vertakkingen onder releases/ancient/*
.
Het tweede schema, Wekelijkse zondagse build, voert een pijplijn om middag op zondag uit voor alle releases/*
vertakkingen.
Dit doet ongeacht of de code is gewijzigd sinds de laatste uitvoering.
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
Als u een fase of taak voorwaardelijk wilt uitvoeren op basis van of deze is gepland door een geplande trigger, gebruikt u de variabele Build.CronSchedule.DisplayName
in een voorwaarde. In dit voorbeeld wordt stage1
alleen uitgevoerd als de pijplijn is geactiveerd door het Daily midnight build
schema en job3
alleen wordt uitgevoerd als de pijplijn is geactiveerd door de Weekly Sunday build
planning.
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
Zie ook
- Meer informatie over geplande triggers.
- Meer informatie over triggers in het algemeen en hoe u deze kunt opgeven.