Conceito e mecanismo
Shared libraries reduzem repetição, mas o seu modelo de confiança importa. Uma biblioteca global trusted pode usar APIs fora do sandbox; acesso de escrita ao respetivo repositório é uma capacidade privilegiada. Bibliotecas de pasta são untrusted. Define owners, revisão e versões adequadas ao alcance dos consumidores. Uma alteração comum pode afetar muitas aplicações ao mesmo tempo, por isso fixa revisões validadas e ensaia atualizações antes de adoção ampla. O código Groovy de Pipeline também tem um modelo CPS que permite persistir execução. Uma função NonCPS não deve chamar passos Pipeline CPS como sh. A anotação não transfere cálculo para um agent nem substitui uma revisão de desenho.
Aplicação guiada
Numa equipa fictícia, o parsing de um relatório enorme em Groovy degrada o controller. Move processamento pesado para uma ferramenta no agent e devolve apenas a informação pequena necessária à decisão. Evita manter grandes objetos no estado da pipeline. Com JCasC, guarda configuração declarativa sob revisão, mas trata instalação e compatibilidade de plugins separadamente. Segredos devem ser fornecidos por mecanismos apropriados, sem valores expostos no Git. Um YAML válido pode ainda referenciar componentes ausentes ou settings incompatíveis. Ensaiar configuração, arranque e jobs representativos permite detetar estas dependências. Para uma biblioteca comum de deployment, documenta contrato, política de versões e recuperação para que cada equipa saiba quando e como atualizar.
Biblioteca trusted alterada numa branch comum: avaliar alcance e conter a versão antes do rollout seguinte.
Armadilhas comuns
Trusted como simples conveniência; NonCPS como agent; YAML válido como instalação completa; main como versão estável.
Tópicos relacionados: Arquitetura, agents e rastreabilidade · Credenciais e fronteiras de confiança · Pipeline: âmbito, tempo e evidência
Versiona os contratos e controla quem pode alterar código executado com confiança elevada.
Referência: Shared libraries and trust · Jenkins LTS 2.568.3 historical exercises; LTS 2.580.1 documentation reviewed 2026-10-02; Java 21 or 25 runtime; plugin versions require confirmation