LCC314 - Maven central et les downloads depuis les CI

20 views
Skip to first unread message

Cyril DE CATHEU

unread,
Jul 25, 2024, 6:03:49 AM7/25/24
to lescastcodeurs
Salut, 

Au sujet des CI qui re-downloadent les dépendances à chaque run, 

Il est très simple de cacher le dossier maven .m2/repository avec l'action cache: https://github.com/actions/cache/blob/main/examples.md#java---maven  
https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#matching-a-cache-key

Un fichier unique est téléchargé et décompressé, et tout se passe dans le network de github donc ça va (beaucoup) plus vite que re-télécharger les dépendances depuis un proxy ou maven central.
Par exemple récupérer ~250Mb de dossier m2 et le décompresser prend 4-5 secondes dans des CI que je gèrent.
Niveau sécurité si vous avez confiance en github c'est aussi bien ou mieux qu'un proxy imo.

On peut facilement contrôler le cache hit avec les arguments key et restore-keys: partage entre workflows, partage entre build qui ont des poms différents, etc...
https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#matching-a-cache-key
Exemple ici: https://github.com/startreedata/thirdeye/blob/056ca48b189e2078c010439f558dfbe63341cb1f/.github/workflows/run-backend-tests.yml#L35 

Arnaud Héritier

unread,
Jul 25, 2024, 6:16:27 AM7/25/24
to lescast...@googlegroups.com
Effectivement et même chose avec GitLab et autres CI
Le seul truc qu'il faut se méfier avec les caches c'est la pollution notamment par des SNAPSHOTS si vous faites des install (c'est pas bien).
Pour cela Maven 4 proposera une gestion plus fine du repo local ( https://maven.apache.org/resolver/local-repository.html

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "lescastcodeurs".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/lescastcodeurs/6f781fc3-52fb-4b69-a2d9-122324be2a04n%40googlegroups.com.


--
Arnaud Héritier
Twitter/GitHub/... : aheritier

alaou...@gmail.com

unread,
Jul 25, 2024, 6:22:33 AM7/25/24
to lescastcodeurs
Hello,

> Pour cela Maven 4 proposera une gestion plus fine du repo local ( https://maven.apache.org/resolver/local-repository.html )

On utilise déjà cette gestion plus fine avec Maven 3.9. Pas besoin d'attendre Maven 4 :)

Arnaud Héritier

unread,
Jul 25, 2024, 1:25:32 PM7/25/24
to lescast...@googlegroups.com

Effectivement, c’est juste que cela sera plus accessible coté settings mais ça fonctionne déjà. 


Reply all
Reply to author
Forward
0 new messages