Delen via


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