Skip to content
Latchkey

O Que É um Estágio de Pipeline? Agrupando Trabalho em Fases

Um estágio de pipeline é uma fase nomeada de um pipeline que agrupa jobs relacionados e os executa como uma unidade, normalmente após o estágio anterior ter sucesso.

A maioria dos pipelines é organizada em um punhado de estágios que rodam em ordem: fazer o build do código, testá-lo e então fazer o deploy. Um estágio é a unidade grossa dessa estrutura. Ele agrupa um ou mais jobs que pertencem juntos, dá a eles um nome e atua como um checkpoint que o pipeline precisa passar antes de avançar. Pensar em estágios torna um pipeline complexo legível num relance.

O que um estágio contém

Um estágio contém um ou mais jobs. Jobs dentro de um estágio muitas vezes rodam em paralelo porque são independentes entre si, enquanto os estágios em si geralmente rodam sequencialmente. Um layout típico é um estágio de build, depois um estágio de test, depois um estágio de deploy.

Estágios rodam como gates

Por padrão, um estágio só começa quando o estágio anterior teve sucesso. Se qualquer job no estágio de test falhar, o estágio de deploy nunca roda. Isso torna os estágios quality gates naturais: cada fase protege a próxima.

Estágios vs jobs vs steps

  • Estágio: uma fase nomeada, ex. "test".
  • Job: uma unidade de trabalho dentro de um estágio que roda em uma máquina, ex. "unit-tests".
  • Step: um único comando dentro de um job, ex. "run pytest".

Um exemplo rápido

Em uma config no estilo GitLab você pode escrever stages: [build, test, deploy], e então atribuir a cada job um valor de stage:. O GitHub Actions não tem uma palavra-chave literal "stage", mas você constrói a mesma forma com jobs e dependências needs: que os ordenam em fases.

Por que estágios importam para a velocidade

Como um estágio espera pelo anterior, um estágio lento atrasa tudo o que vem depois dele. Dividir trabalho independente entre jobs paralelos dentro de um estágio encurta esse estágio. Em runners gerenciados (como o Latchkey), distribuir um estágio de test entre mais runners reduz o tempo de relógio sem mudar a forma do pipeline.

Padrões comuns de estágio

Além de build/test/deploy, as equipes adicionam estágios como lint, security-scan, package e promote. O número certo de estágios equilibra a clareza contra a sobrecarga de cada gate. Estágios demais adicionam espera; poucos demais escondem o que está acontecendo.

Principais conclusões

  • Um estágio é uma fase nomeada que agrupa jobs e roda após o estágio anterior.
  • Estágios atuam como quality gates: um estágio que falha impede os seguintes.
  • Jobs dentro de um estágio muitas vezes rodam em paralelo; os estágios em si rodam em ordem.

Guias relacionados