Setup-miniconda: Est-il possible de mettre en cache lors de l'utilisation de fichiers conda.lock ?

Créé le 10 déc. 2020  ·  9Commentaires  ·  Source: conda-incubator/setup-miniconda

J'utilise un fichier conda.lock pour installer les dépendances. Je me demandais s'il y avait un moyen de le mettre en cache. Actuellement, il semble que la mise en cache régulière ne semble pas fonctionner pour cela.

Tous les 9 commentaires

Hm... j'utilise beaucoup de fichiers de verrouillage et la mise en cache fonctionne sous Linux et OSX :

https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/runs/1493514408?check_suite_focus=true

Cela ne fonctionne pas sur Windows, et même si cela me rend triste, cela ne me surprend pas non plus.

Si vous avez des liens vers le référentiel en question, ou des journaux, ou toute information supplémentaire que vous pourriez fournir autre que "ne fonctionne pas", cela pourrait aider !

Merci @bollwyvl pour votre réponse rapide.

Désolé de ne pas avoir fourni plus de détails plus tôt. J'expérimente sur un dépôt de jouets, vous pouvez trouver un journal récent ici :

https://github.com/ma-sadeghi/xyztest/runs/1534789528?check_suite_focus=true

La taille du cache est d'environ 0 Mo.

PS. Je n'utilise pas setup-miniconda pour ce dépôt, j'essayais de le faire fonctionner avec le conda intégré sur les machines CI.

@bollwyvl

Mise à jour 1

En regardant votre fichier yml en fouillant un peu dans setup-miniconda , il s'est avéré que je faisais tout un tas de choses mal. Le dossier de cache ( ~/conda_pkgs_dir ) était inexistant, j'ai donc dû le créer manuellement, de plus, je ne définissais pas la variable d'environnement CONDA_PKGS_DIRS pour pointer vers ~/conda_pkgs_dir . Voici l'itération la plus récente :

https://github.com/ma-sadeghi/xyztest/runs/1535236467?check_suite_focus=true

ce qui semble que la mise en cache fonctionne correctement et que l'étape "installer les dépendances" est maintenant beaucoup plus rapide.

Merci pour la perspicacité.

Huzzah ! Cache pour tout le monde !

Notez que la mise en cache de l'intégralité du dossier ne fonctionnera pas aussi bien qu'elle le pourrait, car
le cache contient à la fois les archives _et_ le contenu décompressé... Dans notre
après l'étape étape nous (essayons) de nettoyer une partie de cela.

N'hésitez pas à fermer s'il n'y a rien d'autre cassé...
n'impliquait pas cette action.

@bollwyvl Désolé, je sais que cela sort du cadre de ce référentiel, mais puis-je vous demander ce que vous faites exactement pour optimiser la mise en cache ? De quels fichiers vous débarrassez-vous ? le contenu déballé ou les tarballs ?

Ouais c'est à peu près la taille de celui-ci:

https://github.com/conda-incubator/setup-miniconda/blob/master/src/delete.ts

Il y a d'autres trucs là-dedans aussi, mais c'est des trucs piquants en comparaison
à, disons, mkl ou qt déballé.

@bollwyvl Question rapide : en regardant delete.ts , il semble que vous supprimez les dossiers non compressés, plutôt que les fichiers compressés .tar.bz2 . Il me manque probablement quelque chose, mais il semble qu'en faisant cela, conda doive faire une étape supplémentaire de "décompression", alors que si .tar.bz2 sont supprimés, conda peut simplement réutiliser le déjà décompressé Dossiers. Je l'ai essayé sur mon ordinateur et il semble que ce dernier a conduit à des installations plus rapides.

Je pense que tu pourrais aussi nettoyer la conda. @bollwyvl peut-être que nous pourrions l'utiliser au lieu de delete.ts , je l'ai fait comme ça parce que je n'étais pas au courant de conda clean à ce moment-là.

$ conda clean --help



usage: conda clean [-h] [-a] [-i] [-p] [-t] [-f]
                   [-c TEMPFILES [TEMPFILES ...]] [-d] [--json] [-q] [-v] [-y]

Remove unused packages and caches.

Options:

optional arguments:
  -h, --help            Show this help message and exit.

Removal Targets:
  -a, --all             Remove index cache, lock files, unused cache packages,
                        and tarballs.
  -i, --index-cache     Remove index cache.
  -p, --packages        Remove unused packages from writable package caches.
                        WARNING: This does not check for packages installed
                        using symlinks back to the package cache.
  -t, --tarballs        Remove cached package tarballs.
  -f, --force-pkgs-dirs
                        Remove *all* writable package caches. This option is
                        not included with the --all flag. WARNING: This will
                        break environments with packages installed using
                        symlinks back to the package cache.
  -c TEMPFILES [TEMPFILES ...], --tempfiles TEMPFILES [TEMPFILES ...]
                        Remove temporary files that could not be deleted
                        earlier due to being in-use. Argument is path(s) to
                        prefix(es) where files should be found and removed.

Output, Prompt, and Flow Control Options:
  -d, --dry-run         Only display what would have been done.
  --json                Report all output as json. Suitable for using conda
                        programmatically.
  -q, --quiet           Do not display progress bar.
  -v, --verbose         Can be used multiple times. Once for INFO, twice for
                        DEBUG, three times for TRACE.
  -y, --yes             Do not ask for confirmation.

Examples:

    conda clean --tarballs
Cette page vous a été utile?
0 / 5 - 0 notes