8 pontos por adldotori 2023-05-14 | 1 comentários | Compartilhar no WhatsApp

Muita gente usa o GitHub Actions para rodar pipelines de CI/CD no GitHub. Para acelerar os builds, é comum usar bastante cache, mas no início isso não parece um grande problema. Conforme o serviço cresce ou o número de branches aumenta, porém, o cache deixa de funcionar e tudo passa a ser recompilado sempre, o que torna o processo mais lento. Isso acontece porque o cache padrão do GitHub Actions tem um limite de 10 GB.
Para resolver esse problema, desenvolvemos um pacote que permite fazer cache localmente em um self-hosted runner.

      - name: Cache node dependencies  
        id: node-cache  
        uses: corca-ai/local-cache@v2  
        with:  
          path: node_modules  
          key: node-${{ hashFiles(‘yarn.lock’) }}  
          clean-key: node-  

github-hosted runnerEm vez de usar um , basta usar um self-hosted runner e, na parte em que antes era usado o cache existente, trocar apenas o campo uses para corca-ai/local-cache para começar a usar imediatamente.
O limite de tamanho do cache desaparece e, enquanto o cache anterior carregava os arquivos pela rede, o cache local carrega diretamente do disco, o que melhora drasticamente a velocidade do cache. No nosso caso, percebemos um ganho de velocidade de mais de 5 vezes.

1 comentários

 
tujuc 2025-04-09

Há algo semelhante em maxnowack/local-cache.