Build Fingerprint - Definição do Glossário CI/CD
Um build fingerprint é um hash de todas as entradas de uma tarefa. Se duas execuções produzem o mesmo fingerprint, elas devem produzir a mesma saída, então a segunda pode ser servida a partir do cache.
Um build fingerprint é um hash calculado a partir das entradas de uma tarefa (arquivos-fonte, dependências, versões de ferramentas, flags) que identifica de forma única sua saída esperada, para que um sistema de build possa pular trabalho ou reutilizar um resultado em cache quando o fingerprint coincide.
O fingerprinting é o mecanismo por trás de builds incrementais e apoiados em cache em ferramentas como Bazel, Turborepo e Nx.
O que entra em um fingerprint
Um fingerprint correto faz hash de toda entrada que possa alterar a saída: o conteúdo dos arquivos, o grafo de dependências, as versões do compilador e da toolchain, variáveis de ambiente e flags de linha de comando. Perder uma entrada causa cache hits obsoletos; fazer hash em excesso causa cache misses desnecessários.
No CI
Os fingerprints permitem que um pipeline reutilize trabalho de um commit anterior ou de um branch irmão. Uma entrada esquecida (por exemplo, uma versão de ferramenta não fixada) é uma fonte comum de bugs de cache do tipo "funciona na minha máquina".