Skip to content
Latchkey

O Que É um Reusable Workflow no GitHub Actions?

Um reusable workflow é um workflow inteiro que você pode chamar a partir de outros workflows, para que a lógica de CI compartilhada fique em um só lugar.

Copiar o mesmo pipeline para cada repo é frágil. Reusable workflows permitem definir um workflow uma vez e invocá-lo a partir de muitos chamadores, passando inputs e secrets, muito parecido com chamar uma função.

O que é

Um workflow que declara o gatilho workflow_call. Outros workflows o referenciam no campo uses: de um job e passam inputs e secrets.

A callable workflow
# .github/workflows/reusable-test.yml
on:
  workflow_call:
    inputs:
      node-version:
        type: string
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm test

Como funciona

O chamador referencia o reusable workflow por path e versão, fornece inputs with: e secrets:, e o GitHub executa os jobs do chamado como parte da execução do chamador.

Calling it
jobs:
  call-test:
    uses: ./.github/workflows/reusable-test.yml
    with:
      node-version: '20'

Por que importa

Reusable workflows cortam a duplicação e impõem consistência. Atualize o workflow compartilhado uma vez e todos os chamadores absorvem a mudança, o que é inestimável em muitos repositórios.

Limites a conhecer

Há limites na profundidade de aninhamento e em quantos reusable workflows uma execução pode encadear. Inputs e secrets precisam ser passados explicitamente; o chamado não pode ler os secrets do chamador automaticamente.

Conceitos relacionados

Reusable workflows dependem do evento workflow_call e diferem das composite actions, que agrupam steps em vez de jobs inteiros.

Principais conclusões

  • Um reusable workflow é chamado via uses: a partir de outro workflow.
  • Ele usa o gatilho workflow_call e inputs/secrets explícitos.
  • Ele centraliza a lógica de CI compartilhada entre repos.

Guias relacionados