Explorar eventos
Os fluxos de trabalho do GitHub Actions são disparados por eventos – atividades específicas que ocorrem em seu repositório ou em um agendamento. Os eventos são definidos pela on cláusula em sua definição de fluxo de trabalho e determinam quando a automação é executada.
Eventos agendados
Agende fluxos de trabalho a serem executados em momentos específicos usando a sintaxe cron. Isso é perfeito para tarefas de manutenção, relatórios regulares ou builds noturnos.
on:
schedule:
# Runs every weekday at 8 AM UTC
- cron: "0 8 * * 1-5"
# Runs every Sunday at midnight UTC
- cron: "0 0 * * 0"
Detalhamento da sintaxe cron:
- Minuto (0-59) | Hora (0-23) | Dia (1 a 31) | Mês (1 a 12) | Dia da semana (0-6, domingo=0)
- Use nomes de mês:
JAN-DECe nomes de dia:SUN-SAT - Usar
*para "qualquer" (aspas de cadeias de caracteres cron no YAML)
Exemplos:
-
'0 9-17 * * 1-5'- A cada hora, das 9h às 17h, de segunda a sexta-feira -
'30 2 * * *'- Diariamente às 2h30 -
'0 0 1 * *'- Primeiro dia de cada mês à meia-noite
Eventos do repositório de código
Os gatilhos mais comuns respondem a alterações de código em seu repositório:
Eventos básicos de push e pull request
on:
# Single event
push
# Multiple events
pull_request
# Or as a list
on: [push, pull_request]
Eventos filtrados com branches e caminhos
on:
push:
branches: [main, develop]
paths: ["src/**", "!docs/**"]
pull_request:
branches: [main]
types: [opened, synchronize, reopened]
Eventos comuns do repositório
| Event | Trigger | Caso de Uso |
|---|---|---|
push |
Código enviado por push para o branch | CI/CD, teste automatizado |
pull_request |
PR aberta/atualizada | Automação de revisão de código |
release |
Lançamento publicado | Implantar em produção |
create |
Ramificação/etiqueta criada | Inicializar ambientes |
delete |
Ramo/tag excluído | Recursos de limpeza |
Eventos manuais
Dispare fluxos de trabalho manualmente na guia GitHub Actions usando workflow_dispatch:
on:
workflow_dispatch:
inputs:
environment:
description: "Deployment environment"
required: true
default: "staging"
type: choice
options:
- staging
- production
version:
description: "Version to deploy"
required: true
type: string
Observação
O arquivo de fluxo de trabalho deve existir no branch padrão para aparecer na interface de gatilho manual.
Eventos do webhook
O GitHub fornece muitos eventos de webhook para atividades de repositório:
on:
# Wiki page created or updated
gollum
# Issues opened, closed, or edited
issues:
types: [opened, edited, closed]
# New release published
release:
types: [published]
Eventos externos
Use repository_dispatch para disparar fluxos de trabalho de sistemas externos por meio da API REST do GitHub:
on:
repository_dispatch:
types: [deploy-staging, run-tests]
Acionamento externo:
curl -X POST \
-H "Authorization: token YOUR_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/OWNER/REPO/dispatches \
-d '{"event_type":"deploy-staging","client_payload":{"environment":"staging"}}'
Práticas recomendadas para eventos
- Seja específico: use filtros de ramificação e caminho para evitar execuções desnecessárias
- Combinar eventos relacionados: agrupar gatilhos semelhantes em um fluxo de trabalho
- Use os tipos de evento apropriados: escolha o tipo de evento mais específico para suas necessidades
-
Teste manualmente primeiro: Usar
workflow_dispatchdurante o desenvolvimento - Monitorar o uso: analisar as execuções de fluxo de trabalho para otimizar a configuração de eventos
Para obter a documentação completa do evento, consulte Eventos que disparam fluxos de trabalho.