8 points par adldotori 2023-05-14 | 1 commentaires | Partager sur WhatsApp

Beaucoup utilisent GitHub Actions pour exécuter leur pipeline CI/CD sur GitHub. Pour accélérer les builds, on utilise souvent le cache, et au début cela ne pose pas vraiment de problème. Mais à mesure que le service grossit ou que le nombre de branches augmente, le cache cesse de fonctionner correctement et les builds sont relancés à chaque fois, ce qui finit par ralentir l’exécution. Cela vient du fait que le cache par défaut de GitHub Actions est limité à 10 Go.
Pour résoudre ce problème, nous avons développé un package permettant de mettre en cache localement sur un 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-  

Au lieu d’utiliser un github-hosted runner, il suffit d’utiliser un self-hosted runner et de remplacer uniquement la partie uses de votre cache existant par corca-ai/local-cache pour pouvoir l’utiliser immédiatement.
La limite de taille du cache disparaît, et contrairement au cache existant qui récupère les fichiers via le réseau, le cache local les charge directement depuis le disque, ce qui améliore considérablement la vitesse de mise en cache. De notre côté, nous avons constaté un gain de vitesse de plus de 5x.

1 commentaires

 
tujuc 2025-04-09

Il existe aussi quelque chose de similaire : maxnowack/local-cache.