← CI/CD: construir, validar e entregar
02 / 12 · 40 MIN

Jobs e dependências

Organiza execução e transferência de resultados segundo dependências reais.

Conceito e mecanismo

Uma pipeline é um conjunto de trabalhos com dependências, não apenas uma lista de nomes. Na configuração habitual por stages do GitLab, etapas posteriores esperam pelas anteriores. Com needs, um job pode começar quando terminam as dependências declaradas, mesmo que outros trabalhos anteriores continuem. Isso permite feedback mais rápido para componentes independentes. Mas remover uma dependência necessária pode permitir teste ou deployment antes de existir o artefacto correto. Não confundas ordem de execução com transferência de ficheiros: precisam de configuração coerente, mas são problemas distintos. Quando mudas o grafo, verifica quais os produtores de cada entrada e que critérios continuam a bloquear a promoção.

Aplicação guiada

Num exercício fictício, build-api e build-batch são independentes, e cada conjunto de testes só precisa da sua build. Podem formar ramos paralelos, desde que a aceitação integrada continue a esperar pelos resultados necessários. A duração não é simplesmente a soma de todos os jobs quando existe paralelismo real e runners suficientes. Se um job está pending antes de executar qualquer comando, examina capacidade e elegibilidade dos runners, etiquetas e permissões. Alterar o código do teste não resolve falta de executor. Em GitLab, needs: [] permite início imediato; usa-o apenas quando não existem entradas anteriores necessárias. Documenta dependências externas e evita representar uma consulta a artefactos de outra pipeline como garantia automática de que essa pipeline terminou.

NA PRÁTICA

Um job sem runner elegível não fica mais rápido por repetir a compilação.

Armadilhas comuns

Paralelismo sem dependências; ordem como ficheiro transferido; pending como falha da aplicação.

Tópicos relacionados: Integração e entrega · Artefactos e evidência · Testes e decisões

Leva esta ideia contigo

Otimiza o caminho crítico sem retirar entradas ou critérios necessários.

Criar conta

Referência: Directed job dependencies and earlier starts · CI/CD practices 2026-09; scoped GitHub Actions GitLab Jenkins and Azure DevOps Services documentation