Pular para o conteúdo
CronExplain

Explicador de agendamento cron do GitHub Actions

O GitHub Actions inicia workflows agendados usando cron padrão de cinco campos no gatilho on.schedule. Cole sua string cron para ver o que ela significa e quando vai rodar em UTC.

O que significa

GitHub Actions: cinco campos padrão, sempre em UTC, no máximo a cada 5 minutos; as execuções podem atrasar quando o GitHub está sobrecarregado.

✓ Válida · O que significa

Às 05:30, de segunda-feira a sexta-feira

Atalhos

Próximas 10 execuções

#Em UTCSeu horário local
1——
2——
3——
4——
5——
6——
7——
8——
9——
10——

O mesmo agendamento em outros dialetos

  • crontab padrão30 5 * * 1-5
  • Quartz0 30 5 ? * MON-FRI
  • AWS EventBridgecron(30 5 ? * MON-FRI *)As regras do EventBridge usam UTC.
  • Spring0 30 5 * * MON-FRI

Construtor visual

Escolha valores para cada campo. O construtor gera uma expressão padrão de cinco campos, convertida para o dialeto selecionado ao ser usada.

Minuto
Hora
Dia do mês
Mês
Dia da semana
0 9 * * 1-5

Usando cron em um workflow

Adicione um gatilho de agendamento ao arquivo do workflow: on: schedule: - cron: '30 5 * * 1-5'. A expressão usa os cinco campos de sempre (minuto, hora, dia do mês, mês, dia da semana) e precisa estar entre aspas no YAML, pois * é um caractere especial. Você pode listar várias entradas cron, e github.event.schedule informa qual delas disparou.

UTC e o limite de 5 minutos

Os agendamentos são sempre avaliados em UTC, então 0 9 * * * roda às 09:00 UTC, não no seu horário local; use a coluna de horário local da ferramenta para converter. O menor intervalo suportado pelo GitHub é de cinco minutos. Macros como @daily não são suportadas, então escreva os campos.

Atrasos e repositórios inativos

Execuções agendadas podem começar atrasadas em períodos de alta carga, principalmente na virada da hora; escolha um minuto quebrado como 17 em vez de 0 quando o horário exato não for crítico. Em repositórios públicos, workflows agendados são desativados automaticamente após 60 dias sem atividade.

Testando workflows agendados

Adicione workflow_dispatch ao lado de schedule para poder iniciar o workflow manualmente durante os testes. Lembre-se de que os agendamentos só rodam a partir da branch padrão, então mudar o cron numa branch de feature não tem efeito até o merge. Um grupo de concurrency evita que uma execução lenta se sobreponha à próxima.

Perguntas frequentes

Qual fuso horário o cron do GitHub Actions usa?
Sempre UTC. Não há como mudar, então converta seu horário local para UTC ao escrever a expressão.
Um workflow pode rodar a cada minuto?
Não. O intervalo mínimo é de cinco minutos; agendamentos mais frequentes rodam no máximo a cada cinco minutos.
Por que meu workflow agendado não rodou na hora?
Jobs agendados entram em fila e podem atrasar sob alta carga, além de rodarem só na branch padrão. Workflows de repositórios públicos inativos também são pausados.
Posso usar @daily no GitHub Actions?
Não. Use os cinco campos equivalentes, por exemplo 0 0 * * *.