definitie van schedules.cron
Een geplande trigger geeft een schema aan op basis waarvan 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 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.
Definities die naar deze definitie verwijzen: planningen
Eigenschappen
cron
Tekenreeks. Vereist als eerste eigenschap.
Cron-syntaxis die een planning in UTC-tijd definieert.
displayName
Tekenreeks.
Optionele beschrijvende naam voor een specifieke planning.
branches
includeExcludeFilters.
Namen van vertakkingen die moeten worden opgenomen of uitgesloten voor het activeren van een uitvoering.
batch
Booleaanse waarde.
Of de pijplijn moet worden uitgevoerd als de eerder geplande uitvoering wordt uitgevoerd; de standaardwaarde is false
. Dit is ongeacht de versie van de pijplijnopslagplaats.
In de volgende tabel wordt beschreven hoe always
en batch
hoe u werkt.
Altijd | Batch | Gedrag |
---|---|---|
false |
false |
Pijplijn wordt alleen uitgevoerd als er een wijziging is ten opzichte van de laatste geslaagde geplande pijplijnuitvoering. |
false |
true |
Pijplijn wordt alleen uitgevoerd als er een wijziging is ten opzichte van de laatste geslaagde geplande pijplijnuitvoering en er geen geplande pijplijnuitvoering wordt uitgevoerd. |
true |
false |
Pijplijn wordt uitgevoerd volgens het cron-schema. |
true |
true |
Pijplijn wordt uitgevoerd volgens het cron-schema. |
Belangrijk
Wanneer always
is true
, wordt de pijplijn uitgevoerd volgens het cron-schema, zelfs wanneer batch
is true
.
always
Booleaanse waarde.
Of de pijplijn altijd moet worden uitgevoerd of alleen als er broncodewijzigingen zijn geweest sinds de laatste geslaagde geplande uitvoering; de standaardwaarde onwaar is.
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 dit gelijk aan het opgeven *
in de include
component.
Belangrijk
Geplande triggers die zijn gedefinieerd met behulp van de gebruikersinterface voor pijplijninstellingen, hebben voorrang op geplande YAML-triggers.
Als uw YAML-pipeline 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 wilt uitvoeren in uw YAML-pipeline, moet u de geplande triggers verwijderen die zijn gedefinieerd in de gebruikersinterface van de pipelineinstellingen. Zodra alle geplande triggers van de gebruikersinterface zijn verwijderd, moet er een push worden uitgevoerd om de geplande YAML-triggers te kunnen evalueren.
Zie UI-instellingen overschrijven geplande YAML-triggers als u geplande TRIGGERs van de gebruikersinterface wilt verwijderen uit een YAML-pijplijn.
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 de cron-planning die de pijplijnuitvoering heeft geactiveerd.
Uw YAML-pijplijn kan meerdere cron-schema's bevatten en mogelijk wilt u dat uw pijplijn verschillende fasen of taken uitvoert op basis van welke cron-planning wordt uitgevoerd. U hebt bijvoorbeeld een nachtelijke build en een wekelijkse build en u wilt een bepaalde fase alleen tijdens de nachtelijke build uitvoeren. U kunt de Build.CronSchedule.DisplayName
variabele 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.
Het eerste schema, de Dagelijkse middernacht-build, voert elke dag om middernacht een pijplijn uit, alleen als de code is gewijzigd sinds de laatste geslaagde geplande uitvoering.
Hiermee wordt de pijplijn voor main
en alle releases/*
vertakkingen uitgevoerd, met uitzondering van die vertakkingen onder releases/ancient/*
.
Het tweede schema, de build Wekelijkse zondag, voert een pijplijn uit om 's middags op zondag voor alle releases/*
filialen.
Dit gebeurt 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 Build.CronSchedule.DisplayName
variabele in een voorwaarde. In dit voorbeeld stage1
wordt alleen uitgevoerd als de pijplijn is geactiveerd door de Daily midnight build
planning en job3
alleen 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 opgeeft.