O Que É a Palavra-Chave needs no GitHub Actions?
A palavra-chave needs faz um job esperar que um ou mais outros jobs sejam bem-sucedidos antes de começar, montando um grafo de dependências.
Os jobs rodam em paralelo por padrão, mas pipelines reais têm ordem: testar antes de deploy, build antes de release. A palavra-chave needs expressa essas dependências e expõe os outputs dos jobs anteriores.
O que é
Uma chave a nível de job listando os jobs que precisam terminar primeiro. O job dependente só roda depois que todos os jobs que ele declara em needs foram bem-sucedidos.
jobs:
test:
runs-on: ubuntu-latest
steps: [{ run: npm test }]
deploy:
needs: test
runs-on: ubuntu-latest
steps: [{ run: ./deploy.sh }]Como funciona
O GitHub monta um grafo direcionado a partir de todas as entradas de needs e agenda os jobs de acordo. Se um job anterior falhar, os dependentes são pulados, a menos que você sobrescreva com condições.
Acessando outputs
Um job dependente lê os outputs de um job anterior pelo contexto needs, por exemplo ${{ needs.build.outputs.version }}. Isso passa dados ao longo do grafo.
Por que importa
needs transforma uma lista plana de jobs paralelos em um pipeline ordenado. É como você garante que os deploys só aconteçam depois que os testes passam e como os dados fluem entre jobs.
Conceitos relacionados
needs expõe o contexto needs e trabalha lado a lado com job outputs para mover valores entre jobs.
Principais conclusões
needsfaz um job esperar que outros sejam bem-sucedidos.- Ela forma um grafo de dependências entre jobs.
- Leia valores anteriores via
${{ needs.X.outputs.Y }}.