Skip to content
Latchkey

O Que É um Step de Pipeline? A Menor Unidade de Trabalho

Um step de pipeline é a menor unidade de trabalho em um pipeline: um comando ou uma ação reutilizável que roda dentro de um job.

Se um job é uma receita, os steps são as instruções individuais. Cada step faz uma coisa: fazer checkout do repositório, instalar dependências, rodar a suíte de testes ou fazer upload de um artifact. Steps rodam em ordem dentro de um job e compartilham a mesma máquina e workspace, então um step posterior pode usar arquivos que um step anterior produziu.

O que um step faz

Um step é ou um comando de shell que você escreve (run: npm test) ou uma ação empacotada que você reutiliza (uses: actions/checkout). Steps executam de cima para baixo, e por padrão, se um step falha, o resto do job para.

Steps compartilham um workspace

Todos os steps em um job rodam no mesmo runner e veem o mesmo sistema de arquivos. É por isso que um step de "checkout" seguido de um step de "build" funciona: o segundo step encontra os arquivos que o primeiro clonou. O estado não passa entre jobs a menos que você o passe explicitamente.

Um exemplo rápido

Um job mínimo tem steps como: fazer checkout do repo, configurar o toolchain da linguagem, instalar dependências, rodar testes. No YAML, cada item sob steps: é um step, e a ordem é a ordem em que rodam.

Controlando o comportamento do step

  • Condições: pular um step a menos que uma condição se verifique.
  • Continue-on-error: deixar o job prosseguir mesmo se o step falhar.
  • Environment: definir variáveis visíveis para aquele step.
  • Working directory: rodar o step em uma pasta específica.

Steps vs jobs

Steps rodam sequencialmente e compartilham uma máquina; jobs podem rodar em paralelo em máquinas separadas e são isolados uns dos outros. Escolha steps para trabalho ordenado que compartilha arquivos, e jobs para trabalho independente que você quer rodar ao mesmo tempo.

Steps e a velocidade do pipeline

Steps lentos (instalações de dependências, grandes downloads) dominam muitos jobs. Fazer cache desses steps e começar em uma máquina quente reduz o custo. Runners gerenciados (Latchkey) mantêm os caches de dependências e imagens quentes, para que os steps iniciais de cada job terminem mais rápido.

Principais conclusões

  • Um step é um comando ou ação, a menor unidade dentro de um job.
  • Steps rodam em ordem e compartilham o mesmo workspace e máquina.
  • Um step que falha para o job por padrão, a menos que você permita que ele continue.

Guias relacionados