Skip to content
Latchkey

O que é um workflow do GitHub Actions? Jobs, steps e triggers

Um workflow é apenas um arquivo YAML em .github/workflows/ que diz: quando este evento acontecer, execute estes jobs nestes runners.

O GitHub Actions automatiza CI/CD por meio de workflows - arquivos YAML declarativos que vinculam eventos ao trabalho que eles disparam. Entender os quatro substantivos (evento, job, step, runner) faz todo o modelo fazer sentido.

Eventos disparam workflows

Um workflow declara os eventos que escuta em seu bloco on: - um push, um pull request, um agendamento ou um disparo manual. Quando um evento correspondente ocorre, o GitHub coloca o workflow na fila.

Triggers
on:
  push:
    branches: [main]
  pull_request:

Jobs rodam em runners

Um workflow contém um ou mais jobs. Cada job roda em um runner novo e, por padrão, os jobs rodam em paralelo. Use needs: para fazer um job esperar por outro, formando um grafo de dependências.

Steps fazem o trabalho

Cada job é uma lista ordenada de steps. Um step ou executa um comando de shell (run:) ou invoca uma action reutilizável (uses:). Steps de um job compartilham o mesmo runner e sistema de arquivos, então steps anteriores preparam o estado para os posteriores.

A minimal job
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm test

Juntando tudo

Evento → workflow → jobs (em runners, possivelmente paralelos) → steps (em ordem). Todo o resto - matrix, cache, artifacts, permissões - se sobrepõe a essa forma central.

Principais conclusões

  • Um workflow é YAML em .github/workflows/ vinculado a eventos via on:.
  • Jobs rodam em runners novos e, por padrão, rodam em paralelo.
  • Steps rodam em ordem e compartilham o runner e o sistema de arquivos do job.
  • needs: transforma jobs paralelos em um grafo de dependências ordenado.

Guias relacionados