Explorar eventos

Concluído

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-DEC e 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_dispatch durante 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.