schedules.cron tanımı

Zamanlanmış tetikleyici, dalların derlendiği bir zamanlamayı belirtir.

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.

Bu tanıma başvuran tanımlar: schedules

Özellikler

cron Dize. İlk özellik olarak gereklidir.
UTC saatinde zamanlama tanımlayan cron söz dizimi.

displayName Dize.
Belirli bir zamanlamaya verilen isteğe bağlı kolay ad.

branchesincludeExcludeFilters.
Bir çalıştırmayı tetikleme amacıyla dahil etmek veya dışlamak için dal adları.

batchboole değeri.
Önceden zamanlanmış çalıştırma devam ediyorsa işlem hattının çalıştırılıp çalıştırılmayacağı; varsayılan değerdir false. Bu işlem hattı deposunun sürümünden bağımsızdır.

Aşağıdaki tabloda nasıl always ve batch nasıl etkileşim kuruldığı açıklanmaktadır.

Her zaman Batch Davranış
false false İşlem hattı yalnızca son başarılı zamanlanmış işlem hattı çalıştırmasıyla ilgili bir değişiklik olduğunda çalıştırılır.
false true İşlem hattı çalıştırmaları yalnızca son başarılı zamanlanmış işlem hattı çalıştırmasıyla ilgili bir değişiklik olduğunda ve devam eden zamanlanmış işlem hattı çalıştırması yoksa çalışır.
true false İşlem hattı, cron zamanlamasına göre çalışır.
true true İşlem hattı, cron zamanlamasına göre çalışır.

Önemli

olduğunda alwaystrue, işlem hattı olduğunda bile batchtruecron zamanlamasına göre çalışır.

alwaysboole değeri.
İşlem hattının her zaman çalıştırılıp çalıştırılmayacağı veya yalnızca son başarılı zamanlanmış çalıştırmadan bu yana kaynak kodu değişiklikleri olup olmadığı; varsayılan değer false'tur.

Açıklamalar

Zamanlanmış tetikleyici belirtmezseniz, zamanlanmış derlemeler gerçekleşmez.

Not

için branchesyan tümcesi olmayan bir includeexclude yan tümce belirtirseniz, yan tümcesinde belirtmeye *include eşdeğerdir.

Önemli

İşlem hattı ayarları kullanıcı arabirimi kullanılarak tanımlanan zamanlanmış tetikleyiciler YAML zamanlanmış tetikleyicilerinden önceliklidir.

YAML işlem hattınızda hem YAML zamanlanmış tetikleyicileri hem de Kullanıcı Arabirimi tanımlı zamanlanmış tetikleyiciler varsa, yalnızca Kullanıcı Arabirimi tanımlı zamanlanmış tetikleyiciler çalıştırılır. YAML işlem hattınızda YAML tanımlı zamanlanmış tetikleyicileri çalıştırmak için işlem hattı ayarları kullanıcı arabiriminde tanımlanmış zamanlanmış tetikleyicileri kaldırmanız gerekir. Tüm kullanıcı arabirimi zamanlanmış tetikleyicileri kaldırıldıktan sonra, YAML zamanlanmış tetikleyicilerinin değerlendirilmeye başlaması için bir gönderim yapılmalıdır.

YAML işlem hattından kullanıcı arabirimi zamanlanmış tetikleyicilerini silmek için bkz. UI ayarları YAML zamanlanmış tetikleyicilerini geçersiz kılma.

Build.CronSchedule.DisplayName değişkeni

Bir işlem hattı, cron zamanlanmış tetikleyicisi nedeniyle çalıştığında, önceden tanımlanmış Build.CronSchedule.DisplayName değişken işlem hattı çalıştırmasını displayName tetikleyen cron zamanlamasını içerir.

YAML işlem hattınız birden çok cron zamanlaması içerebilir ve işlem hattınızın hangi cron zamanlamasını çalıştırdığı temelinde farklı aşamaları veya işleri çalıştırmasını isteyebilirsiniz. Örneğin, bir gecelik derlemeniz ve haftalık derlemeniz vardır ve belirli bir aşamayı yalnızca gece derlemesi sırasında çalıştırmak istersiniz. Bir işin veya aşamanın Build.CronSchedule.DisplayName çalıştırılıp çalıştırılmayacağını belirlemek için bir iş veya aşama koşulunda değişkenini kullanabilirsiniz.

- 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')

Daha fazla örnek için aşağıdaki Örnekler bölümüne bakın.

Örnekler

Aşağıdaki örnek iki zamanlamayı tanımlar.

İlk zamanlama olan Günlük gece yarısı derlemesi, yalnızca kodun son başarılı zamanlanan çalıştırmadan sonra değişmesi durumunda her gün gece yarısı bir işlem hattı çalıştırır. ve altındaki releases/ancient/*dallar dışında tüm releases/* dallar için main işlem hattını çalıştırır.

İkinci zamanlama olan Haftalık Pazar derlemesi, tüm releases/* dallar için pazar günleri öğle saatlerinde bir işlem hattı çalıştırır. Kodun son çalıştırmadan sonra değişip değişmediğine bakılmaksızın bunu yapar.

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

Bir aşamayı veya işi zamanlanmış tetikleyici tarafından zamanlanmış olup olmadığına bağlı olarak koşullu olarak çalıştırmak için değişkeni bir koşulda kullanın Build.CronSchedule.DisplayName . Bu örnekte, stage1 yalnızca işlem hattı zamanlama tarafından Daily midnight build tetiklendiyse çalışır ve job3 yalnızca işlem hattı zamanlama tarafından Weekly Sunday build tetiklendiyse çalışır.

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

Ayrıca bkz.