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.
Ö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
true
olduğ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
true
olduğunda, batch
true
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ı
branches
iç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.