Accélérer GitHub Actions grâce au cache local
(github.com/corca-ai)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
Il existe aussi quelque chose de similaire : maxnowack/local-cache.