definicja schedules.cron
Zaplanowany wyzwalacz określa harmonogram, w którym są tworzone gałęzie.
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.
Definicje odwołujące się do tej definicji: harmonogramy
Właściwości
cron
Ciąg. Wymagane jako pierwsza właściwość.
Składnia Cron definiująca harmonogram w czasie UTC.
displayName
Ciąg.
Opcjonalna przyjazna nazwa nadana określonemu harmonogramowi.
branches
includeExcludeFilters.
Nazwy gałęzi do uwzględnienia lub wykluczenia w celu wyzwolenia przebiegu.
batch
wartość logiczna.
Czy należy uruchomić potok, jeśli wcześniej zaplanowane uruchomienie jest w toku; wartość domyślna to false
. Jest to niezależnie od wersji repozytorium potoków.
W poniższej tabeli opisano sposób always
i batch
interakcję.
Zawsze | Batch | Zachowanie |
---|---|---|
false |
false |
Potok jest uruchamiany tylko wtedy, gdy nastąpiła zmiana w odniesieniu do ostatniego pomyślnego zaplanowanego uruchomienia potoku. |
false |
true |
Potok jest uruchamiany tylko wtedy, gdy nastąpiła zmiana w odniesieniu do ostatniego pomyślnego zaplanowanego uruchomienia potoku i nie ma zaplanowanego uruchomienia potoku w toku. |
true |
false |
Potok jest uruchamiany zgodnie z harmonogramem cron. |
true |
true |
Potok jest uruchamiany zgodnie z harmonogramem cron. |
Ważne
Gdy always
parametr ma true
wartość , potok jest uruchamiany zgodnie z harmonogramem cron, nawet jeśli batch
ma wartość true
.
always
wartość logiczna.
Czy zawsze uruchamiać potok, czy tylko wtedy, gdy od czasu ostatniego zaplanowanego uruchomienia nastąpiły zmiany kodu źródłowego; wartość domyślna to false.
Uwagi
Jeśli określisz żaden zaplanowany wyzwalacz, nie będą wykonywane żadne zaplanowane kompilacje.
Uwaga
Jeśli określisz klauzulę exclude
bez include
klauzuli dla branches
, jest ona równoważna określeniu *
w klauzuli include
.
Ważne
Zaplanowane wyzwalacze zdefiniowane przy użyciu interfejsu użytkownika ustawień potoku mają pierwszeństwo przed zaplanowanymi wyzwalaczami YAML.
Jeśli w potoku YAML istnieją zarówno zaplanowane wyzwalacze YAML, jak i zdefiniowane zaplanowane wyzwalacze interfejsu użytkownika, uruchamiane są tylko zdefiniowane zaplanowane wyzwalacze interfejsu użytkownika. Aby uruchomić zdefiniowane zaplanowane wyzwalacze YAML w potoku YAML, należy usunąć zaplanowane wyzwalacze zdefiniowane w interfejsie użytkownika ustawień potoku. Po usunięciu wszystkich zaplanowanych wyzwalaczy interfejsu użytkownika należy wypchnąć, aby wyzwalacze zaplanowane YAML zaczęły być oceniane.
Aby usunąć zaplanowane wyzwalacze interfejsu użytkownika z potoku YAML, zobacz Ustawienia interfejsu użytkownika zastępują zaplanowane wyzwalacze YAML.
Build.CronSchedule.DisplayName, zmienna
Gdy potok jest uruchamiany z powodu zaplanowanego wyzwalacza cron, wstępnie zdefiniowana Build.CronSchedule.DisplayName
zmienna zawiera displayName
harmonogram cron, który wyzwolił uruchomienie potoku.
Potok YAML może zawierać wiele harmonogramów cron i możesz chcieć, aby potok uruchamiał różne etapy lub zadania na podstawie harmonogramu cron. Na przykład masz nocną kompilację i cotygodniową kompilację i chcesz uruchomić określony etap tylko podczas nocnej kompilacji. Możesz użyć zmiennej Build.CronSchedule.DisplayName
w warunku zadania lub etapu, aby określić, czy uruchamiać to zadanie, czy etap.
- 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')
Aby uzyskać więcej przykładów, zobacz następującą sekcję Przykłady .
Przykłady
W poniższym przykładzie zdefiniowano dwa harmonogramy.
Pierwszy harmonogram, kompilacja Daily midnight, uruchamia potok o północy codziennie tylko wtedy, gdy kod zmienił się od czasu ostatniego pomyślnego zaplanowanego uruchomienia.
Uruchamia potok dla main
wszystkich releases/*
gałęzi, z wyjątkiem tych gałęzi w obszarze releases/ancient/*
.
Drugi harmonogram, cotygodniowe niedziele kompilacji, uruchamia potok w południe w niedziele dla wszystkich releases/*
gałęzi.
Robi to niezależnie od tego, czy kod zmienił się od ostatniego uruchomienia.
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
Aby warunkowo uruchomić etap lub zadanie na podstawie tego, czy został on zaplanowany przez zaplanowany wyzwalacz, użyj zmiennej Build.CronSchedule.DisplayName
w warunku. W tym przykładzie jest uruchamiany tylko wtedy, stage1
gdy potok został wyzwolony zgodnie z harmonogramem Daily midnight build
i job3
jest uruchamiany tylko wtedy, gdy potok został wyzwolony zgodnie z harmonogramem Weekly Sunday build
.
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
Zobacz też
- Dowiedz się więcej o zaplanowanych wyzwalaczach.
- Dowiedz się więcej o wyzwalaczach i sposobach ich określania.