Skip to content
Latchkey

O Que É um Runner Cache? Reutilizando Trabalho Entre Execuções Limpas

Um runner cache armazena artifacts caros - dependências, outputs de build, camadas de Docker - fora do runner para que uma máquina nova e efêmera possa restaurá-los em vez de reconstruir do zero.

Runners efêmeros são limpos mas não têm nada em cache, então cada job reinstalaria dependências e reconstruiria do zero. Um runner cache resolve isso: mantenha as partes caras em armazenamento externo e restaure-as em cada runner novo.

Por que o cache é necessário

Um runner limpo paga um imposto completo de instalação de dependências e build a cada job. Para um projeto grande isso pode ofuscar o tempo de teste real. O cache restaura as partes pesadas e de mudança lenta para que o job gaste seu tempo em trabalho real.

O que é colocado em cache

  • Downloads de package manager (npm, pip, Maven, Cargo).
  • Outputs de build compilados e estado de build incremental.
  • Camadas de imagem Docker para evitar reconstruir estágios inalterados.

Cache sem estado sujo

A distinção-chave: um runner cache restaura artifacts conhecidos em uma máquina limpa, o que é seguro. Reutilizar um runner sujo inteiro é inseguro. O cache te dá velocidade mantendo a correção de runners efêmeros.

Cache em runners gerenciados

Plataformas gerenciadas entregam cache rápido e integrado para que runners efêmeros restaurem dependências e camadas rapidamente. A Latchkey combina warm pools com cache embutido para que runners novos também sejam runners rápidos.

Chaves de cache e invalidação

Um cache é chaveado em algo que captura suas entradas - tipicamente um hash do lockfile ou do Dockerfile. Quando as entradas mudam a chave muda e o cache é reconstruído; quando não mudam, ele é restaurado. Uma chave mal escolhida ou erra o tempo todo ou serve artifacts stale, então a chave é tão importante quanto o cache em si.

Principais conclusões

  • Um runner cache armazena deps e outputs de build fora do runner.
  • Ele permite que máquinas efêmeras pulem reconstruir do zero.
  • Ele restaura artifacts conhecidos em runners limpos, mantendo a correção.
  • O cache gerenciado torna runners novos rápidos sem reutilizar estado sujo.

Guias relacionados