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.
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.
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm testJuntando 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 viaon:. - 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.