Setup-miniconda: Можно ли кешировать при использовании файлов conda.lock?

Созданный на 10 дек. 2020  ·  9Комментарии  ·  Источник: conda-incubator/setup-miniconda

Я использую файл conda.lock для установки зависимостей. Мне было интересно, есть ли способ его кэшировать. В настоящее время кажется, что обычное кеширование для этого не работает.

Все 9 Комментарий

Хм ... у меня есть тяжелый запуск с использованием lockfile, и кеширование работает на linux и osx:

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

Он не работает с окнами, и, хотя меня это огорчает, меня это не удивляет.

Если у вас есть ссылки на репозиторий, о котором идет речь, или журналы, или любую дополнительную информацию, которую вы могли бы предоставить, кроме «не работает», это поможет!

Спасибо @bollwyvl за быстрый ответ.

Извините за то, что не предоставил более подробную информацию ранее. Я экспериментирую с игрушечным репо, недавний журнал можно найти здесь:

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

Сообщается, что размер кеша составляет ~ 0 МБ.

PS. Я не использую setup-miniconda для этого репо, я пытался заставить его работать со встроенным conda на машинах CI.

@bollwyvl

Обновление 1

Посмотрев на ваш файл yml , немного покопавшись в setup-miniconda , оказалось, что я делаю целую кучу вещей неправильно. Папки кеша ( ~/conda_pkgs_dir ) не существовало, поэтому мне пришлось создать ее вручную, также я не устанавливал переменную среды CONDA_PKGS_DIRS чтобы она указывала на ~/conda_pkgs_dir . Вот самая последняя итерация:

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

похоже, что кеширование работает нормально, а шаг «установка зависимостей» теперь выполняется намного быстрее.

Спасибо за понимание.

Ура! Кеш для всех!

Обратите внимание, что кеширование всей папки не будет работать так хорошо, как могло бы, поскольку
кеш содержит как архивы, так и распакованное содержимое ... В нашем
post step step мы (пытаемся) кое-что очистить.

Не стесняйтесь закрывать, если больше ничего не сломано ... тем более, что это
не связано с этим действием.

@bollwyvl Извините, я знаю, что это полностью выходит за рамки этого репо, но могу ли я спросить, что именно вы делаете для оптимизации кеширования? От каких файлов вы избавляетесь? распакованное содержимое или архивы?

Да, это в значительной степени размер:

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

Там тоже есть кое-что еще, но по сравнению с ними это никуда не годится.
к, скажем, распакованному mkl или qt.

@bollwyvl Быстрый вопрос: глядя на delete.ts , кажется, что вы удаляете несжатые папки, а не сжатые файлы .tar.bz2 . Я, вероятно, что-то упускаю, но кажется, что при этом conda необходимо выполнить дополнительный шаг «распаковки», тогда как если .tar.bz2 удалены, conda может просто повторно использовать уже распакованный папки. Я попробовал его на своем компьютере, и мне показалось, что последнее привело к более быстрой установке.

Я думаю, вы могли бы также запустить conda clean. @bollwyvl, возможно, мы могли бы использовать это вместо delete.ts , я сделал это так, потому что в тот момент я не знал о conda clean.

$ 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

Еще несколько идей для меньшего кеша:

Была ли эта страница полезной?
0 / 5 - 0 рейтинги