Скрипт bin/setup
, который поставляется с рельсами, использует bundle check || bundle install
в качестве шага перед курсором. Это может быть хорошим местом для начала.
Я использую bundle install --frozen
на наших конвейерах; Frozen гарантирует, что в Gemfile.lock не произойдет никаких изменений. Мы используем кеш, поэтому я даже не беспокоюсь о шаге bundle check
.
Если вы можете предоставить более подробную информацию о вашей настройке (docker? Kubernetes? Хост-провайдер?), Кто-то может порекомендовать стратегию кэширования для компоновщика, если вопрос задается во время установки комплекта.
Как правило, для конвейеров CI мы всегда запускаем bundle install --frozen
в начале нашей сборки, даже если у нас настроен механизм кэширования. Я заметил, что в некоторых ситуациях исполняемые файлы не связываются автоматически при восстановлении кэша форм, поэтому это гарантирует, что все работает. Это не медленно, ни в коем случае; при кэшировании шаг bundle install --frozen
занимает всего секунду или 2.