Delen via


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.

branchesincludeExcludeFilters.
Namen van vertakkingen die moeten worden opgenomen of uitgesloten voor het activeren van een uitvoering.

batchBooleaanse 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.

alwaysBooleaanse 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