À propos de la mise en cache des dépendances du flux de travail
Les exécutions de workflow utilisent souvent les mêmes sorties ou dépendances téléchargées d’une exécution à l’autre. Par exemple, les outils de gestion des packages et des dépendances comme Maven, Gradle, npm et Yarn conservent un cache local des dépendances téléchargées.
Pour accélérer le temps nécessaire pour recréer des fichiers comme des dépendances, GitHub vous pouvez mettre en cache les fichiers que vous utilisez fréquemment dans les flux de travail.
Artifacts versus mise en cache des dépendances
Les artefacts et la mise en cache sont similaires, car ils offrent la possibilité de stocker des fichiers sur GitHub, mais chaque fonctionnalité offre différents cas d’usage et ne peut pas être utilisée de manière interchangeable.
- Utilisez la mise en cache lorsque vous souhaitez réutiliser des fichiers qui ne changent pas souvent entre les exécutions de flux de travail, telles que les dépendances téléchargées par un système de gestion de package, les sorties de build intermédiaires ou d’autres fichiers coûteux à régénérer. La mise en cache de ces fichiers peut accélérer les exécutions de votre flux de travail, même si un travail doit toujours être en mesure de télécharger ou de régénérer ces fichiers si un cache n’est pas disponible.
- Utilisez des artefacts lorsque vous souhaitez enregistrer des fichiers générés par un travail à utiliser ou afficher une fois qu’une exécution de flux de travail s’est terminée, par exemple des fichiers binaires ou des journaux de génération, ou lorsque vous souhaitez passer des fichiers entre des travaux dans un flux de travail.
Pour plus d’informations sur les artefacts d’exécution de workflow, consultez Stocker et partager des données avec les artefacts de workflow.
Sécurité du cache
Les caches sont partagés en fonction de la branche ou de la balise qu’une exécution de flux de travail utilise, et non sur l’identité du flux de travail ou du travail. Consultez Événements qui déclenchent des flux de travail et la branche GITHUB_REF utilisée pour différents déclencheurs de flux de travail. Toute exécution qui peut lire un cache restaure son contenu as-is. Vous devez donc traiter les fichiers restaurés comme une entrée non approuvée et ne jamais stocker des secrets ou d’autres données sensibles dans un cache.
Les flux de travail non fiables peuvent lire le contenu sensible du cache, par exemple lorsqu’un pull_request provenant d’une bifurcation restaure un cache. Les caches empoisonnés peuvent entraîner l’exécution du code dans des flux de travail approuvés. Pour limiter le risque d’empoisonnement du cache, GitHub accorde aux flux de travail qui s’exécutent en réponse à des déclencheurs de faible confiance un accès en lecture seule aux caches dans le périmètre de la branche par défaut.
Pour plus d’informations sur l’étendue du cache, les restrictions d’accès et les meilleures pratiques pour l’utilisation sécurisée des caches, consultez Référence sur la mise en cache des dépendances.
Étapes suivantes
Pour implémenter la mise en cache des dépendances dans vos flux de travail, consultez Référence sur la mise en cache des dépendances.