Кэширование зависимостей в Gitlab CI на основе SHA1 моего списка зависимостей - PullRequest
0 голосов
/ 14 мая 2019

Я использую Gitlab CI для выполнения задач по линтингу и тестированию в PHP-приложении, и большую часть времени занимает установка пакетов Composer.

Поскольку у нас есть несколько конвейеров в час, это составило огромную пропускную способность (и время), потерянную для композитора, просто загружающего много кода отовсюду.

Мы начали изучать кэширование зависимостейв gitlab ci, но обычно он просто загружает одни и те же вещи снова и снова.Есть ли способ разделить кэши между конвейерами на основе хеша composer.lock?

Мы используем сервер gitlab DigitalOcean в один клик.

Мы уже пытались использовать эти настройки, но безуспешно.

variables:
  COMPOSER_CACHE_SHA1: "sha1sum composer.lock"

cache:
  key: "eval $COMPOSER_CACHE_SHA1"
variables:
  COMPOSER_CACHE_SHA1: sha1sum composer.lock

# Cache libraries in between jobs
cache:
  key: "$COMPOSER_CACHE_SHA1"
cache:
  key: "$(sha1sum composer.lock)"

Все, что мы пробовали выше, просто кеширует, используя вариант команды вместо вывода командыкоманда.

1 Ответ

0 голосов
/ 11 июня 2019

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

...