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.
# .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 testComo 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.
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_calle inputs/secrets explícitos. - Ele centraliza a lógica de CI compartilhada entre repos.