Aracılığıyla paylaş


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

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

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

branches excludeFiltersiçerir.
Bir çalıştırmayı tetikleme için dal adlarını dahil etmek veya dışlamak için .

boolebatch.
batch özelliği, önceden zamanlanmış çalıştırma devam ediyorsa işlem hattının çalıştırılıp çalıştırılmayacağını yapılandırmaktadır. batch trueolduğunda, önceki işlem hattı çalıştırması devam ediyorsa zamanlama nedeniyle yeni bir işlem hattı çalıştırması başlatılmaz. Varsayılan değer: false.

batch özelliği, always özelliğinin ayarından etkilenir. always trueolduğunda, batchtrue ve devam eden bir çalıştırma olduğunda bile işlem hattı cron zamanlamasına göre çalışır.

Her zaman Toplu iş 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ışır.
false true İşlem hattı 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ı olmadığında çalışır.
true false İşlem hattı cron zamanlamasına göre çalışır.
true true İşlem hattı, devam eden bir çalıştırma olsa bile cron zamanlamasına göre çalışır.

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

Açıklamalar

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

Uyarı

branchesiçin include yan tümcesi olmayan bir exclude yan tümcesi belirtirseniz, include yan tümcesinde * belirtmeye 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 UI tanımlı zamanlanmış tetikleyiciler varsa, yalnızca UI 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ımlanan 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ı Arayüzü zamanlanmış tetikleyicilerini silmek için bkz. Kullanıcı Arayüzü ayarları YAML zamanlanmış tetikleyicilerinigeçersiz kılma.

Build.CronSchedule.DisplayName değişkeni

Bir işlem hattı, zamanlanmış bir tetikleyici nedeniyle çalıştığında, önceden tanımlanmış Build.CronSchedule.DisplayName değişkeni, işlem hattı çalıştırmasını tetikleyen cron zamanlamasının displayName 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ın çalıştırıldığına bağlı olarak farklı aşamaları veya işleri çalıştırmasını isteyebilirsiniz. Örneğin, bir gecelik derlemeniz ve haftalık bir 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 çalıştırılıp çalıştırılmayacağını belirlemek için, bir iş veya aşama koşulunda Build.CronSchedule.DisplayName 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 örnekte iki zamanlama tanımlanmaktadır.

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

haftalık pazar derlemesi ikinci zamanlama, 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 Build.CronSchedule.DisplayName değişkenini bir koşulda kullanın. Bu örnekte, stage1 yalnızca işlem hattı Daily midnight build zamanlaması tarafından tetiklendiyse çalışır ve job3 yalnızca işlem hattı Weekly Sunday build zamanlaması tarafından tetiklendiğinde ç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.

  • zamanlanmış tetikleyicilerhakkında daha fazla bilgi edinin.
  • Genel olarak tetikleyicileri ve bunların nasıl belirtilmesi hakkında daha fazla bilgi edinin.