Skip to content
Latchkey

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.

A job dependency
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

  • needs faz 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 }}.

Guias relacionados