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.
branches
includeExcludeFilters.
Bir çalıştırmayı tetikleme amacıyla dahil etmek veya dışlamak için dal adları.
batch
boole 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 always
true
, işlem hattı olduğunda bile batch
true
cron zamanlamasına göre çalışır.
always
boole 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 branches
yan tümcesi olmayan bir include
exclude
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.
- Zamanlanmış tetikleyiciler hakkında daha fazla bilgi edinin.
- Tetikleyiciler hakkında genel olarak daha fazla bilgi edinin ve bunların nasıl belirtileceğini öğrenin.