Configurar agendamentos para pipelines
Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019
O Azure Pipelines fornece vários tipos de gatilhos para configurar como o pipeline é iniciado.
- Os gatilhos agendados iniciam seu pipeline com base em uma programação, como uma compilação noturna. Este artigo fornece orientação sobre como usar gatilhos agendados para executar seus pipelines com base em uma agenda.
- Os gatilhos baseados em eventos iniciam seu pipeline em resposta a eventos, como a criação de uma solicitação pull ou o envio por push para uma ramificação. Para obter informações sobre como usar gatilhos baseados em eventos, consulte Gatilhos no Azure Pipelines.
Você pode combinar gatilhos agendados e baseados em eventos em seus pipelines, por exemplo, para validar a compilação sempre que um push é feito (gatilho CI), quando uma solicitação pull é feita (gatilho PR) e uma compilação noturna (gatilho agendado). Se você quiser criar seu pipeline somente em um cronograma, e não em resposta a gatilhos baseados em eventos, certifique-se de que seu pipeline não tenha nenhum outro gatilho habilitado. Por exemplo, pipelines YAML em um repositório GitHub têm gatilhos de CI e gatilhos de PR habilitados por padrão. Para obter informações sobre como desabilitar gatilhos padrão, consulte Gatilhos no Azure Pipelines e navegue até a seção que aborda seu tipo de repositório.
Acionadores agendados
Importante
Os gatilhos agendados definidos usando a interface do usuário de configurações de pipeline têm precedência sobre os gatilhos agendados YAML.
Se o pipeline do YAML tiver acionadores agendados do YAML e acionadores agendados definidos da IU, apenas estes últimos serão executados. Para executar os acionadores agendados definidos do YAML no pipeline do YAML, deve remover os acionadores agendados definidos na IU das definições do pipeline. Depois que todos os gatilhos agendados da interface do usuário forem removidos, um push deve 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 substituir gatilhos agendados do YAML.
Os gatilhos agendados configuram um pipeline para ser executado em um cronograma definido usando a sintaxe cron.
schedules:
- cron: string # cron syntax defining a schedule
displayName: string # friendly name given to a specific schedule
branches:
include: [ string ] # which branches the schedule applies to
exclude: [ string ] # which branches to exclude from the schedule
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 # cron syntax defining a schedule
displayName: string # friendly name given to a specific schedule
branches:
include: [ string ] # which branches the schedule applies to
exclude: [ string ] # which branches to exclude from the schedule
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.
batch: boolean # Whether to run the pipeline if the previously scheduled run is in-progress; the default is false.
# batch is available in Azure DevOps Server 2022.1 and higher
Os pipelines agendados no YAML têm as seguintes restrições.
- O fuso horário para horários cron é UTC.
- Se você especificar uma
exclude
cláusula sem umainclude
cláusula parabranches
, isso equivale a especificar*
nainclude
cláusula. - Não é possível usar variáveis de pipeline ao especificar agendas.
- Se você usar modelos em seu arquivo YAML, as agendas devem ser especificadas no arquivo YAML principal e não nos arquivos de modelo.
Considerações de ramificação para gatilhos agendados
Os gatilhos agendados são avaliados para uma ramificação quando ocorrem os seguintes eventos.
- Um pipeline é criado.
- O arquivo YAML de um pipeline é atualizado, seja por push ou editando-o no editor de pipeline.
- O caminho do arquivo YAML de um pipeline é atualizado para fazer referência a um arquivo YAML diferente. Essa alteração apenas atualiza a ramificação padrão e, portanto, só pega agendas no arquivo YAML atualizado para a ramificação padrão. Se quaisquer outras ramificações mesclarem posteriormente a ramificação padrão, por exemplo
git pull origin main
, os gatilhos agendados do arquivo YAML recém-referenciado serão avaliados para essa ramificação. - Uma nova ramificação é criada.
Depois que um desses eventos ocorre em uma ramificação, todas as execuções agendadas para essa ramificação são adicionadas, se essa ramificação corresponder aos filtros de ramificação para os gatilhos agendados contidos no arquivo YAML nessa ramificação.
Importante
As execuções agendadas para uma ramificação são adicionadas somente se a ramificação corresponder aos filtros de ramificação para os gatilhos agendados no arquivo YAML nessa ramificação específica.
Por exemplo, um pipeline é criado com a seguinte agenda, e esta versão do arquivo YAML é verificada main
na ramificação. Este cronograma constrói o main
ramo diariamente.
# YAML file in the main branch
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
Em seguida, uma nova ramificação é criada com base em main
, chamada new-feature
. Os gatilhos agendados do arquivo YAML na nova ramificação são lidos e, como não há correspondência para a new-feature
ramificação, nenhuma alteração é feita nas compilações agendadas e a ramificação não é criada usando um gatilho new-feature
agendado.
Se new-feature
for adicionado à branches
lista e essa alteração for enviada por push para a ramificação, o arquivo YAML será lido new-feature
e, como new-feature
agora está na lista de ramificações, uma compilação agendada será adicionada para a new-feature
ramificação.
# YAML file in the new-feature-branch
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
- new-feature
Agora, considere que uma ramificação nomeada release
é criada com base em e main
, em seguida release
, é adicionada aos filtros de ramificação no arquivo YAML na main
ramificação, mas não na ramificação recém-criada release
.
# YAML file in the release branch
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
# YAML file in the main branch with release added to the branches list
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
- release
Como release
foi adicionado aos filtros de ramificação na main
ramificação, mas não aos filtros de ramificação na release
ramificação, a release
ramificação não será criada nessa agenda. Somente quando a release
ramificação for adicionada aos filtros de ramificação no arquivo YAML na ramificação de liberação a compilação agendada será adicionada ao agendador.
Considerações em lote para gatilhos agendados
Nota
A batch
propriedade está disponível no Azure DevOps Server 2022.1 e superior.
A batch
propriedade configura se o pipeline deve ser executado se a execução agendada anteriormente estiver em andamento; o padrão é false
. Isto é independentemente da versão do repositório do pipeline.
A tabela a seguir descreve como always
e batch
interage.
Sempre | Batch | Comportamento |
---|---|---|
false |
false |
O pipeline é executado somente se houver uma alteração em relação à última execução de pipeline agendada bem-sucedida. |
false |
true |
O pipeline é executado somente se houver uma alteração em relação à última execução de pipeline agendada bem-sucedida e se não houver nenhuma execução de pipeline agendada em andamento. |
true |
false |
O pipeline é executado de acordo com o cronograma cron. |
true |
true |
O pipeline é executado de acordo com o cronograma cron. |
Importante
Quando always
é true
, o pipeline é executado de acordo com o cronograma cron, mesmo quando batch
é true
.
Variável Build.CronSchedule.DisplayName
Nota
A Build.CronSchedule.DisplayName
variável está disponível no Azure DevOps Server 2022.1 e superior.
Quando um pipeline está em execução devido a um gatilho cron agendado, a variável predefinida Build.CronSchedule.DisplayName
contém o displayName
da agenda cron que disparou a execução do pipeline.
Seu pipeline YAML pode conter várias agendas cron, e você pode querer que seu pipeline execute diferentes estágios ou trabalhos com base em quais cron schedule é executado. Por exemplo, você tem uma compilação noturna e uma compilação semanal, e deseja executar um determinado estágio apenas durante a compilação noturna. Você pode usar a Build.CronSchedule.DisplayName
variável em uma condição de trabalho ou 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 exemplos schedules.cron.
Não há suporte para compilações agendadas na sintaxe YAML no Azure DevOps Server 2019. Depois de criar seu pipeline de compilação YAML, você pode usar as configurações de pipeline para especificar um gatilho agendado.
Exemplos
O exemplo a seguir define duas agendas:
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
O primeiro agendamento, Daily midnight build, executa um pipeline à meia-noite todos os dias, mas somente se o código tiver sido alterado desde a última execução agendada bem-sucedida, para main
e todas as releases/*
ramificações, exceto as ramificações em releases/ancient/*
.
O segundo horário, Weekly Sunday build, executa um pipeline ao meio-dia aos domingos, quer o código tenha mudado ou não desde a última corrida, para todas as releases/*
filiais.
Nota
O fuso horário para horários cron é UTC, portanto, nesses exemplos, a compilação da meia-noite e a compilação do meio-dia são à meia-noite e meio-dia no UTC.
Para obter mais exemplos, consulte Migrando do editor clássico.
Não há suporte para compilações agendadas na sintaxe YAML no Azure DevOps Server 2019. Depois de criar seu pipeline de compilação YAML, você pode usar as configurações de pipeline para especificar um gatilho agendado.
Sintaxe Cron
Cada expressão cron de gatilho agendado do Azure Pipelines é uma expressão delimitada por espaço com cinco entradas na seguinte ordem. A expressão está entre aspas '
simples.
mm HH DD MM DW
\ \ \ \ \__ Days of week
\ \ \ \____ Months
\ \ \______ Days
\ \________ Hours
\__________ Minutes
Campo | Valores aceites |
---|---|
Minutos | 0 a 59 |
Horas | 0 a 23 |
Dias | 1 a 31 |
Meses | 1 a 12, nomes completos em inglês, três primeiras letras de nomes em inglês |
Dias da semana | 0 a 6 (a partir de domingo), nomes completos em inglês, três primeiras letras de nomes em inglês |
Os valores podem estar nos seguintes formatos.
Formato | Exemplo | Description |
---|---|---|
Caráter universal | * |
Corresponde a todos os valores para este campo |
Valor único | 5 |
Especifica um único valor para este campo |
Delimitado por vírgulas | 3,5,6 |
Especifica vários valores para este campo. Vários formatos podem ser combinados, como 1,3-6 |
Intervalos | 1-3 |
O intervalo inclusivo de valores para este campo |
Intervalos | */4 ou 1-5/2 |
Intervalos a corresponder para este campo, como cada quarto valor ou o intervalo de 1 a 5 com um intervalo de passo de 2 |
Exemplo | Expressão de Cron |
---|---|
Construa todas as segundas, quartas e sextas-feiras às 18:00 | 0 18 * * Mon,Wed,Fri , 0 18 * * 1,3,5 ou 0 18 * * 1-5/2 |
Construa a cada 6 horas | 0 0,6,12,18 * * * , 0 */6 * * * ou 0 0-18/6 * * * |
Construa a cada 6 horas a partir das 9h00 | 0 9,15,21 * * * ou 0 9-21/6 * * * |
Para obter mais informações sobre formatos suportados, consulte Expressão Crontab.
Não há suporte para compilações agendadas na sintaxe YAML no Azure DevOps Server 2019. Depois de criar seu pipeline de compilação YAML, você pode usar as configurações de pipeline para especificar um gatilho agendado.
Visualização de execuções agendadas
Você pode visualizar uma visualização das próximas compilações agendadas escolhendo Execuções agendadas no menu de contexto na página de detalhes do pipeline para seu pipeline.
Importante
A exibição de execuções agendadas mostra apenas os pipelines programados para serem executados dentro de sete dias a partir da data atual. Se a sua agenda cron tiver um intervalo superior a 7 dias e a próxima execução estiver agendada para começar após sete dias a partir da data atual, ela não será exibida na visualização Execuções agendadas.
Depois de criar ou atualizar seus gatilhos agendados, você pode verificá-los usando o modo de exibição Execuções agendadas.
Este exemplo exibe as execuções agendadas para a agenda a seguir.
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
A janela Execuções agendadas exibe as horas convertidas para o fuso horário local definido no computador usado para navegar até o portal do Azure DevOps. Este exemplo exibe uma captura de tela feita no fuso horário EST.
Nota
Se você atualizar o agendamento para um pipeline em execução, o modo de exibição Execuções agendadas não será atualizado com o novo agendamento até que o pipeline em execução seja concluído.
Não há suporte para compilações agendadas na sintaxe YAML no Azure DevOps Server 2019. Depois de criar seu pipeline de compilação YAML, você pode usar as configurações de pipeline para especificar um gatilho agendado.
Em execução mesmo quando não há alterações de código
Por padrão, seu pipeline não será executado como agendado se não houver alterações de código desde a última execução agendada bem-sucedida. Por exemplo, considere que você programou um pipeline para funcionar todas as noites às 21h00. Durante os dias da semana, você envia várias alterações para o seu código. O pipeline é executado de acordo com o cronograma. Durante os fins de semana, você não faz nenhuma alteração no seu código. Se não houve alterações no código desde a execução programada na sexta-feira, o pipeline não será executado como programado durante o fim de semana.
Para forçar a execução de um pipeline mesmo quando não há alterações de código, você pode usar a always
palavra-chave.
schedules:
- cron: ...
...
always: true
Não há suporte para compilações agendadas na sintaxe YAML nesta versão do Azure DevOps Server. Depois de criar seu pipeline de compilação YAML, você pode usar as configurações de pipeline para especificar um gatilho agendado.
Limites no número de execuções agendadas em pipelines YAML
Existem determinados limites para a frequência com que pode agendar a execução de um pipeline. Estes limites foram implementados para evitar a utilização indevida de recursos do Azure Pipelines, nomeadamente os agentes alojados na Microsoft. Os limites são:
- cerca de 1000 execuções por pipeline por semana
- 10 execuções por pipeline por 15 minutos
Migrando do editor clássico
Os exemplos a seguir mostram como migrar suas agendas do editor clássico para o YAML.
- Exemplo: compilação noturna do repositório Git em vários fusos horários
- Exemplo: Construção noturna com diferentes frequências
Exemplo: compilação noturna do repositório Git em vários fusos horários
Neste exemplo, o gatilho agendado do editor clássico tem duas entradas, produzindo as compilações a seguir.
Todas as segundas e sextas-feiras às 3:00 (UTC + 5:30 fuso horário), construa ramificações que atendam aos critérios de filtro de
features/india/*
ramificaçãoTodas as segundas e sextas-feiras às 3:00 (UTC - 5:00 fuso horário), construa ramificações que atendam aos critérios de filtro de
features/nc/*
ramificação
O gatilho agendado YAML equivalente é:
schedules:
- cron: '30 21 * * Sun-Thu'
displayName: M-F 3:00 AM (UTC + 5:30) India daily build
branches:
include:
- /features/india/*
- cron: '0 8 * * Mon-Fri'
displayName: M-F 3:00 AM (UTC - 5) NC daily build
branches:
include:
- /features/nc/*
No primeiro horário, M-F 3:00 AM (UTC + 5:30) India daily build, a sintaxe cron (mm HH DD MM DW
) é 30 21 * * Sun-Thu
.
- Minutos e Horas -
30 21
- Este mapeia para21:30 UTC
(9:30 PM UTC
). Como o fuso horário especificado no editor clássico é UTC + 5:30, precisamos subtrair 5 horas e 30 minutos do tempo de compilação desejado de 3:00 AM para chegar ao horário UTC desejado para especificar para o gatilho YAML. - Dias e Meses são especificados como curingas, pois essa programação não especifica para ser executada apenas em determinados dias do mês ou em um mês específico.
- Dias da semana -
Sun-Thu
- por causa da conversão de fuso horário, para que nossas compilações sejam executadas às 3:00 AM no fuso horário UTC + 5:30 Índia, precisamos especificar iniciá-las no dia anterior no horário UTC. Também podemos especificar os dias da semana como0-4
ou0,1,2,3,4
.
No segundo horário, M-F 3:00 AM (UTC - 5) NC compilação diária, a sintaxe cron é 0 8 * * Mon-Fri
.
- Minutos e Horas -
0 8
- Este mapeia para8:00 AM UTC
. Como o fuso horário especificado no editor clássico é UTC - 5:00, precisamos adicionar 5 horas a partir do tempo de compilação desejado de 3:00 AM para chegar ao horário UTC desejado para especificar para o gatilho YAML. - Dias e Meses são especificados como curingas, pois essa programação não especifica para ser executada apenas em determinados dias do mês ou em um mês específico.
- Dias da semana -
Mon-Fri
- Como nossas conversões de fuso horário não abrangem vários dias da semana para nossa programação desejada, não precisamos fazer nenhuma conversão aqui. Também podemos especificar os dias da semana como1-5
ou1,2,3,4,5
.
Importante
Os fusos horários UTC nos gatilhos agendados do YAML não contabilizam o horário de verão.
Gorjeta
Ao usar 3 dias de letra da semana e querer um período de vários dias através do Sol, Sol deve ser considerado o primeiro dia da semana, por exemplo, Para um horário de meia-noite EST, quinta-feira a domingo, a sintaxe cron é 0 5 * * Sun,Thu-Sat
.
Exemplo: Construção noturna com diferentes frequências
Neste exemplo, o gatilho agendado do editor clássico tem duas entradas, produzindo as compilações a seguir.
Todas as segundas e sextas-feiras às 3:00 AM UTC, construa ramificações que atendam aos critérios de
main
filtro ereleases/*
ramificaçãoTodos os domingos às 3:00 AM UTC, construa a
releases/lastversion
ramificação, mesmo que a fonte ou pipeline não tenha mudado
O gatilho agendado YAML equivalente é:
schedules:
- cron: '0 3 * * Mon-Fri'
displayName: M-F 3:00 AM (UTC) daily build
branches:
include:
- main
- /releases/*
- cron: '0 3 * * Sun'
displayName: Sunday 3:00 AM (UTC) weekly latest version build
branches:
include:
- /releases/lastversion
always: true
Na primeira programação, M-F 3:00 AM (UTC) compilação diária, a sintaxe cron é 0 3 * * Mon-Fri
.
- Minutos e Horas -
0 3
- Este mapeia para3:00 AM UTC
. Como o fuso horário especificado no editor clássico é UTC, não precisamos fazer nenhuma conversão de fuso horário. - Dias e Meses são especificados como curingas, pois essa programação não especifica para ser executada apenas em determinados dias do mês ou em um mês específico.
- Dias da semana -
Mon-Fri
- porque não há conversão de fuso horário, os dias da semana são mapeados diretamente da programação clássica do editor. Também poderíamos especificar os dias da semana como1,2,3,4,5
.
No segundo horário, domingo 3:00 AM (UTC) compilação semanal última versão, a sintaxe cron é 0 3 * * Sun
.
- Minutos e Horas -
0 3
- Este mapeia para3:00 AM UTC
. Como o fuso horário especificado no editor clássico é UTC, não precisamos fazer nenhuma conversão de fuso horário. - Dias e Meses são especificados como curingas, pois essa programação não especifica para ser executada apenas em determinados dias do mês ou em um mês específico.
- Dias da semana -
Sun
- Como nossas conversões de fuso horário não abrangem vários dias da semana para nossa programação desejada, não precisamos fazer nenhuma conversão aqui. Também poderíamos especificar os dias da semana como0
. - Também especificamos
always: true
, uma vez que esta compilação está agendada para ser executada, independentemente de o código-fonte ter sido atualizado ou não.
FAQ
- Quero que meu pipeline seja executado apenas no cronograma e não quando alguém empurra uma alteração para uma filial
- Defini um cronograma no arquivo YAML. Mas não correu. O que aconteceu?
- Meus horários YAML estavam funcionando bem. Mas, eles pararam de trabalhar agora. Como faço para depurar isso?
- Meu código não foi alterado, mas uma compilação agendada foi acionada. Porquê?
- Vejo a execução planejada no painel Execuções agendadas. No entanto, ele não é executado nesse momento. Porquê?
- As agendas definidas no trabalho de pipeline YAML para uma ramificação, mas não para a outra. Como devo proceder para corrigir este problema?
Quero que meu pipeline seja executado apenas no cronograma e não quando alguém empurra uma alteração para uma filial
Se você quiser que seu pipeline seja executado apenas na agenda, e não quando alguém envia uma alteração para uma ramificação ou mescla uma alteração para a ramificação principal, você deve desabilitar explicitamente os gatilhos de CI e PR padrão no pipeline.
Para desabilitar os gatilhos de CI e PR padrão, adicione as instruções a seguir ao seu pipeline YAML e verifique se você não substituiu os gatilhos de pipeline YAML por gatilhos de interface do usuário.
trigger: none
pr: none
Para obter mais informações, consulte definição pr e definição de gatilho.
Defini um cronograma no arquivo YAML. Mas não correu. O que aconteceu?
Verifique as próximas execuções que o Azure Pipelines programou para seu pipeline. Você pode encontrar essas execuções selecionando a ação Execuções agendadas em seu pipeline. A lista é filtrada para mostrar apenas as próximas corridas nos próximos dias. Se isso não atender às suas expectativas, provavelmente é o caso de você ter digitado incorretamente seu cronograma cron, ou você não tem o cronograma definido na ramificação correta. Leia o tópico acima para entender como configurar agendas. Reavalie sua sintaxe cron. Todos os horários para horários cron estão em UTC.
Faça uma pequena alteração trivial no seu arquivo YAML e envie essa atualização para o repositório. Se houve algum problema na leitura das agendas do arquivo YAML anteriormente, ele deve ser corrigido agora.
Se você tiver quaisquer agendas definidas na interface do usuário, suas agendas YAML não serão honradas. Certifique-se de que você não tenha nenhuma agenda de interface do usuário navegando até o editor do seu pipeline e selecionando Triggers.
Há um limite para o número de execuções que você pode agendar para um pipeline. Leia mais sobre limites.
Se não houver alterações no seu código, o Azure Pipelines pode não iniciar novas execuções. Saiba como substituir esse comportamento.
Meus horários YAML estavam funcionando bem. Mas, eles pararam de trabalhar agora. Como faço para depurar isso?
Se você não especificou
always:true
, seu pipeline não será agendado, a menos que haja atualizações feitas em seu código. Verifique se houve alguma alteração no código e como você configurou as agendas.Há um limite de quantas vezes você pode agendar seu pipeline. Verifique se excedeu esses limites.
Verifique se alguém ativou mais agendas na interface do usuário. Abra o editor do pipeline e selecione Triggers. Se eles definiram agendas na interface do usuário, suas agendas YAML não serão honradas.
Verifique se o pipeline está pausado ou desativado. Selecione Configurações para seu pipeline.
Verifique as próximas execuções que o Azure Pipelines programou para seu pipeline. Você pode encontrar essas execuções selecionando a ação Execuções agendadas em seu pipeline. Se você não vir as agendas esperadas, faça uma pequena alteração trivial no arquivo YAML e envie a atualização para o repositório. Isso deve ressincronizar as agendas.
Se você usar o GitHub para armazenar seu código, é possível que o Azure Pipelines tenha sido limitado pelo GitHub quando tentou iniciar uma nova execução. Verifique se você pode iniciar uma nova execução manualmente.
Meu código não foi alterado, mas uma compilação agendada foi acionada. Porquê?
Você pode ter habilitado uma opção para sempre executar uma compilação agendada, mesmo que não haja alterações de código. Se você usar um arquivo YAML, verifique a sintaxe para o agendamento no arquivo YAML. Se você usa pipelines clássicos, verifique se marcou essa opção nos gatilhos agendados.
Você pode ter atualizado o pipeline de compilação ou alguma propriedade do pipeline. Isso fará com que uma nova execução seja agendada, mesmo que você não tenha atualizado seu código-fonte. Verifique o histórico de alterações no pipeline usando o editor clássico.
Você pode ter atualizado a conexão de serviço usada para se conectar ao repositório. Isso fará com que uma nova execução seja agendada, mesmo que você não tenha atualizado seu código-fonte.
O Azure Pipelines primeiro verifica se há atualizações para o seu código. Se o Azure Pipelines não conseguir acessar seu repositório ou obter essas informações, ele criará uma execução informativa. É uma compilação fictícia para informar que o Azure Pipelines não consegue acessar seu repositório.
Seu pipeline pode não ter uma compilação completamente bem-sucedida. Para determinar se uma nova compilação deve ser agendada ou não, o Azure DevOps procura a última compilação agendada completamente bem-sucedida. Se não encontrar um, ele aciona uma nova compilação agendada. Compilações agendadas parcialmente bem-sucedidas não são consideradas bem-sucedidas, portanto, se seu pipeline tiver apenas compilações parcialmente bem-sucedidas, o Azure DevOps acionará compilações agendadas, mesmo que seu código não tenha sido alterado.
Vejo a execução planejada no painel Execuções agendadas. No entanto, ele não é executado nesse momento. Porquê?
- O painel Execuções agendadas mostra todas as agendas potenciais. No entanto, ele pode realmente não ser executado, a menos que você tenha feito atualizações reais para o código. Para forçar uma programação a ser sempre executada, certifique-se de ter definido a propriedade always no pipeline YAML ou marcado a opção de sempre executar em um pipeline clássico.
As agendas definidas no trabalho de pipeline YAML para uma ramificação, mas não para a outra. Como devo proceder para corrigir este problema?
As agendas são definidas em arquivos YAML e esses arquivos são associados a ramificações. Se você quiser que um pipeline seja agendado para uma ramificação específica, digamos features/X
, certifique-se de que o arquivo YAML nessa ramificação tenha o cronograma cron definido nele e que ele tenha as inclusões de ramificação corretas para o agendamento. O arquivo YAML na features/X
ramificação deve ter o seguinte schedule
neste exemplo:
schedules:
- cron: '0 12 * * 0' # replace with your schedule
branches:
include:
- features/X
Para obter mais informações, consulte Considerações de ramificação para gatilhos agendados.