Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um gatilho agendado especifica uma agenda na qual os branches são criados.
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.
Propriedades
cron cadeia de caracteres. Obrigatório como primeira propriedade.
sintaxe Cron definindo um agendamento no horário UTC.
displayName cadeia de caracteres.
nome amigável opcional fornecido a uma agenda específica.
branches
includeExcludeFilters.
nomes de branch a serem incluídos ou excluídos para disparar uma execução.
batch
booliano.
a propriedade batch configura se o pipeline deve ser executado se a execução agendada anteriormente estiver em andamento. Quando batch for true, uma nova execução de pipeline não será iniciada devido ao agendamento se uma execução de pipeline anterior ainda estiver em andamento. O padrão é false.
A propriedade batch é afetada pela configuração da propriedade always. Quando always é true, o pipeline é executado de acordo com o agendamento cron, mesmo quando batch é true e há uma execução em andamento.
| Sempre | Lote | Comportamento |
|---|---|---|
false |
false |
O pipeline será executado somente se houver uma alteração em relação à última execução de pipeline agendada bem-sucedida. |
false |
true |
O pipeline será executado somente se houver uma alteração em relação à última execução de pipeline agendada bem-sucedida e não houver nenhuma execução de pipeline agendada em andamento. |
true |
false |
O pipeline é executado de acordo com o agendamento cron. |
true |
true |
O pipeline é executado de acordo com o agendamento cron mesmo se houver uma execução em andamento. |
always
booliano.
Se o pipeline deve ser executado ou somente se houve alterações no código-fonte desde a última execução agendada bem-sucedida; o padrão é false.
Observações
Se você não especificar nenhum gatilho agendado, nenhum build agendado ocorrerá.
Observação
Se você especificar uma cláusula exclude sem uma cláusula include para branches, será equivalente a especificar * na cláusula include.
Importante
Gatilhos agendados definidos usando as configurações de pipeline da interface do usuário têm precedência sobre gatilhos agendados do YAML.
Se o pipeline yaml tiver gatilhos agendados yaml e gatilhos agendados definidos pela interface do usuário, somente os gatilhos agendados definidos pela interface do usuário serão executados. Para executar os gatilhos agendados definidos pelo YAML em seu pipeline YAML, você deve remover os gatilhos agendados definidos na interface do usuário das configurações do pipeline. Depois que todos os gatilhos agendados da interface do usuário forem removidos, um push deverá ser feito para que os gatilhos agendados do YAML comecem a ser avaliados.
Para excluir gatilhos agendados da interface do usuário de um pipeline YAML, consulte configurações da interface do usuário substituem os gatilhos agendados do YAML.
Variável Build.CronSchedule.DisplayName
Quando um pipeline está em execução devido a um gatilho agendado cron, a variável de Build.CronSchedule.DisplayName predefinida contém o displayName do agendamento cron que disparou a execução do pipeline.
Seu pipeline yaml pode conter vários agendamentos cron e talvez você queira que seu pipeline execute diferentes estágios ou trabalhos com base no qual o agendamento cron é executado. Por exemplo, você tem um build noturno e um build semanal e deseja executar um determinado estágio somente durante a compilação noturna. Você pode usar a variável Build.CronSchedule.DisplayName em um trabalho ou condição de estágio para determinar se esse trabalho ou estágio deve ser executado.
- 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')
Para obter mais exemplos, consulte a seção exemplos de a seguir.
Exemplos
O exemplo a seguir define dois agendamentos.
O primeiro agendamento, diária de build da meia-noite, executa um pipeline à meia-noite todos os dias somente se o código tiver sido alterado desde a última execução agendada bem-sucedida.
Ele executa o pipeline para main e todas as ramificações releases/*, exceto para essas ramificações em releases/ancient/*.
A segunda agenda, de build de domingo semanal, executa um pipeline ao meio-dia aos domingos para todas as filiais releases/*.
Ele faz isso independentemente de o código ter sido alterado desde a última execução.
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
Para executar condicionalmente um estágio ou trabalho com base em se ele foi agendado por um gatilho agendado, use a variável Build.CronSchedule.DisplayName em uma condição. Neste exemplo, stage1 só será executado se o pipeline tiver sido disparado pelo agendamento Daily midnight build e job3 só será executado se o pipeline tiver sido disparado pelo agendamento 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
Consulte também
- Saiba mais sobre gatilhos agendados.
- Saiba mais sobre gatilhos em geral e como especificá-los.