Skip to main content

Кэширование зависимостей

Узнайте о кэшировании зависимостей для скорости и эффективности рабочего процесса.

Сведения о кэшировании зависимостей рабочего процесса

Рабочий процесс часто повторно использует одни и те же выходные данные или скачанные зависимости из одного запуска в другом. Например, средства управления пакетами и зависимостями, такие как Maven, Gradle, npm и Yarn, хранят локальный кэш скачанных зависимостей.

Чтобы ускорить процесс восстановления файлов, таких как зависимости, GitHub можно кэшировать файлы, которые вы часто используете в рабочих процессах.

Артефакты и кэширование зависимостей

Артефакты и кэширование похожи, поскольку позволяют хранить файлы на GitHub, но каждая функция предлагает разные сценарии использования и не может использоваться взаимозаменяемо.

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

Дополнительные сведения о артефактах запуска рабочего процесса см. в разделе Хранение и предоставление общего доступа к данным с артефактами рабочего процесса.

Безопасность кэша

Кэши используются на основе ветви или тега, используемого в рабочем процессе, а не идентичности рабочего процесса или задачи. См. События, инициирующие рабочие процессы и GITHUB_REF раздел для ветки, используемой для различных триггеров рабочих процессов. Любой запуск, который может читать кэш, восстанавливает его содержимое as-is, поэтому воспринимайте восстановленные файлы как ненадёжные данные и никогда не храните секреты или другие конфиденциальные данные в кэше.

Ненадёжные рабочие процессы могут читать чувствительное содержимое кэша, например, когда pull_request форк восстанавливает кэш. Отравленные кэши могут привести к выполнению кода в доверенных рабочих процессах. Чтобы снизить риск отравления кэша, GitHub рабочие процессы, работающие в ответ на низкоуровневые триггеры, дают доступ только к кэшам в области действия ветки по умолчанию.

Для подробностей о сфере применения кэша, ограничениях доступа и лучших практиках безопасного использования кэшей см. Справочник по кэшированию зависимостей.

Следующие шаги

Сведения о реализации кэширования зависимостей в рабочих процессах см. в разделе Справочник по кэшированию зависимостей.