O Que É um Template de Pipeline? Reutilizando Definições de Pipeline
Um template de pipeline é uma definição de pipeline reutilizável e parametrizada que vários projetos ou jobs podem chamar em vez de duplicar a mesma config.
Quando cada repositório copia as mesmas cem linhas de YAML de CI, uma única mudança significa editar dezenas de arquivos. Um template de pipeline resolve isso definindo a lógica compartilhada uma vez e deixando cada projeto chamá-la com parâmetros. É o princípio DRY aplicado aos seus pipelines: escreva os steps uma vez, varie as entradas.
Por que templates existem
Templates centralizam a lógica de pipeline compartilhada. Um time de plataforma pode manter um único template de "fazer build e test de um app Node"; todo repo Node o chama. Correções e mudanças de política chegam em um só lugar e se propagam para tudo que usa o template.
Como templates recebem entrada
Um template expõe parâmetros (versão do node, comando de test, alvo de deploy). Os chamadores passam valores, e o template os preenche. É isso que faz um template servir a muitos projetos sem forkeá-lo.
Um exemplo rápido
O GitHub Actions chama isso de reusable workflow: um chamador referencia uses: my-org/.github/.github/workflows/ci.yml@main e passa entradas com with:. O GitLab usa include: para puxar arquivos de template. Ambos transformam config compartilhada em uma única fonte.
Templates vs copy-paste
- Copy-paste: rápido no início, diverge com o tempo.
- Template: uma definição, consistente em todo lugar, mais fácil de governar.
- Templates também tornam auditorias mais simples: você revisa um arquivo, não muitos.
Versionando templates
Fixe os chamadores a uma tag ou commit do template para que uma mudança upstream não possa quebrar todos os pipelines de uma vez. Avance a versão de forma deliberada. Isso equilibra o benefício de um template compartilhado contra o risco de uma atualização surpresa.
Principais conclusões
- Um template de pipeline é uma definição reutilizável e parametrizada que projetos chamam.
- Ele remove config de CI copiada e colada, então uma mudança atualiza tudo.
- Fixe a versão nos chamadores do template para que mudanças upstream cheguem de forma deliberada.